WordPress viene con cinco tipos de post por defecto: postpageattachmentrevision, y menu.

Mientras desarrollas tu plugin, puede que necesites crear tu propio tipo de contenido específico: por ejemplo, productos para un sitio web de comercio electrónico, tareas para un sitio web de aprendizaje electrónico o películas para un sitio web de reseñas.

Usando Custom Post Types, puedes registrar tu propio tipo de post. Una vez que se registra un tipo de post personalizado, se obtiene una nueva pantalla administrativa de nivel superior que se puede utilizar para gestionar y crear posts de ese tipo.

Para registrar un nuevo tipo de post, se utiliza la función register_post_type().

Alerta:
Recomendamos poner los tipos de post personalizados en un plugin en lugar de un tema. Esto asegura que el contenido del usuario sigue siendo portátil incluso si se cambia el tema.

El siguiente ejemplo mínimo registra un nuevo post type, Productos, que se identifica en la base de datos como wporg_product.

function wporg_custom_post_type() {register_post_type('wporg_product',array('labels' => array('name' => __('Products', 'textdomain'),'singular_name' => __('Product', 'textdomain'),),'public' => true,'has_archive' => true,));}add_action('init', 'wporg_custom_post_type');

Ampliar código fuente completoContraer código fuente completo

Por favor, visita la página de referencia de register_post_type() para ver la descripción de los argumentos.

Atención:
Debes llamar a register_post_type() antes del hook admin_init y después del hook after_setup_theme. Un buen gancho a utilizar es el init action hook.

Mejores prácticas de nombramiento #Mejores prácticas de nombramiento

Es importante que antepongas a tus funciones e identificadores de tipo de entrada un prefijo corto que corresponda a tu plugin, tema o sitio web.

Atención:
Asegúrate de que tu identificador de tipo de post personalizado no supera los 20 caracteres, ya que la columna post_type en la base de datos es actualmente un campo VARCHAR de esa longitud.

Atención:
Para asegurar la compatibilidad con el futuro, no use wp_ como su identificador – está siendo usado por el núcleo de WordPress.

Atención:
Si tu identificador es demasiado genérico (por ejemplo: «product«), puede entrar en conflicto con otros plugins o temas que hayan elegido utilizar ese mismo identificador.

Nota:
Resolver los identificadores de tipo de post duplicados no es posible sin desactivar uno de los tipos de post en conflicto.

Top

URLs #URLs

Un tipo de post personalizado obtiene su propio slug dentro de la estructura de URL del sitio.

Un post de tipo wporg_product utilizará la siguiente estructura de URL por defecto: http://example.com/wporg_product/%product_name%.

wporg_product es el slug de su tipo de post personalizado y %product_name% es el slug de su producto particular.

El permalink final sería: http://example.com/wporg_product/wporg-is-awesome.

Puedes ver el permalink en la pantalla de edición de tu custom post type, al igual que con los post types por defecto.

Un slug personalizado para un tipo de post personalizado #Un slug personalizado para un tipo de post personalizado

Para establecer un slug personalizado para el slug de tu tipo de post personalizado todo que tienes que hacer es añadir una clave => par de valores al rewrite clave en el register_post_type() array de argumentos.

Ejemplo:

function wporg_custom_post_type() {register_post_type('wporg_product',array('labels' => array('name' => __( 'Products', 'textdomain' ),'singular_name' => __( 'Product', 'textdomain' ),),'public' => true,'has_archive' => true,'rewrite' => array( 'slug' => 'products' ), // my custom slug));}add_action('init', 'wporg_custom_post_type');

Ampliar código fuente completoColapsar código fuente completo

Lo anterior dará como resultado la siguiente estructura de URL: http://example.com/products/%product_name%

Atención:
Usar un slug genérico como products puede potencialmente entrar en conflicto con otros plugins o temas, así que intenta usar uno que sea más específico para tu contenido.

Nota:
A diferencia de los identificadores de tipo de post personalizados, el problema del slug duplicado puede resolverse fácilmente cambiando el slug de uno de los tipos de post en conflicto.

Si el autor del plugin incluyó una llamada apply_filters() en los argumentos, esto se puede hacer programáticamente anulando los argumentos enviados a través de la función register_post_type().

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *