Custom Post Type


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.

Posted in

2 responses to “Custom Post Type”

  1. Posted March 8, 2011 at 9:08 pm | Permalink

    Se borra el wp menu.! alguna solución?

  2. Posted March 9, 2011 at 12:22 am | Permalink

    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;
    }

Leave a Reply