Wordpress nos permite crear nuestros propios Post y personalizarlos a nuestro gusto. A esto se le conoce como Post Type.
Tan solo hay que seguir los siguientes simples cuatro pasos.
Paso 1 Registramos el Post Type: Video
Primero debemos registrar nuestro Type Post con las características necesarias, en este ejemplo he agregado todas las características que podemos utilizar.
/** Registramos nuestro propio post */ register_post_type( 'videos', array( 'label' => 'Videos', 'public' => true, 'show_ui' => true, 'capability_type' => 'post', 'hierarchical' => false, 'rewrite' => true, 'query_var' => true, 'supports' => array( 'title', 'editor', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'thumbnail', 'author', 'page-attributes' ) ) );
Paso 2 Registro de Categorías y Etiquetas
Ahora debemos implementar las categorías y etiquetas, tambien podemos agregar nuestras propias taxonomias.
/** Implementamos las Categorías y Etiquetas */
register_taxonomy_for_object_type('category', 'external');
register_taxonomy_for_object_type('post_tag', 'external');
También podemos crear nuestras propias taxonomias.
Paso 3 Enlistar nuestro Post: Video
Ya hemos creado nuestro Post Type. Pero no se mostrará en la página principal, para enlistar nuestro Type Post debemos crear la siguiente función:
/**
* Mostramos el Post Type: Video
*/
function mostrar_post_type( $query ) {
if ( is_home() || is_front_page() || is_category() || is_tag() || is_feed() )
$query->set( 'post_type', array( 'post', 'videos' ) );
return $query;
}
Paso 4 Juntar todo
Todo el código debe ser colocado en el archivo functions.php. El registro de nuestro Type Post, la implementación de las Categorías y Etiquetas se deben colocar dentro de la función post_type_video().
<?php
/**
* Llamando a las funciones creadas
*/
add_action( 'init', 'post_type_video' );
add_filter( 'pre_get_posts', 'mostrar_post_type' );
/**
* Registramos el Post Type: Video
*/
function post_type_video() {
/** Registramos nuestro propio post */
register_post_type( 'videos', array(
'label' => 'Videos',
'public' => true,
'show_ui' => true,
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => true,
'query_var' => true,
'supports' => array(
'title',
'editor',
'excerpt',
'trackbacks',
'custom-fields',
'comments',
'revisions',
'thumbnail',
'author',
'page-attributes'
)
) );
/** Implementamos las Categorías y Etiquetas */
register_taxonomy_for_object_type('category', 'external');
register_taxonomy_for_object_type('post_tag', 'external');
}
/**
* Mostramos el Post Type: Video
*/
function mostrar_post_type( $query ) {
if ( is_home() || is_front_page() || is_category() || is_tag() || is_feed() )
$query->set( 'post_type', array( 'post', 'videos' ) );
return $query;
}
?>
No olvides visitar la Documentación en Codex.
2 responses to “Custom Post Type”
Se borra el wp menu.! alguna solución?
Solución:
// Mostramos el Post Type in category.php
function mostrar_post_type( $query ) {
if ($query->is_category) {
$query->set( ‘post_type’, array( ‘ingredients’ ) );
}
return $query;
}