customizar páginas de taxonomía en wordpress

Publicado por & archivado en WordPress.

wpchapaSucede a menudo que necesitamos clasificar nuestros posts por algo más que categorías. Si bien WordPress es muy sencillo de usar y configurar, quizá este sea uno de los aspectos que más puede costar a la hora de adaptarlo a nuestras necesidades, sobretodo si necesitamos un funcionamento poco estándar.

Recientemente me he topado con la necesidad de crear y personalizar una página de taxonomía de un custom post type. Por si fuera poco, la taxonomía debía contar, además, con custom fields. Demasiada customización como para poder gestionarlo únicamente desde el admin de WordPress, así que veamos hasta qué punto necesitamos añadir plugins y programación a nuestro tema.

En primer lugar creamos nuestro tipo de post, al que llamaremos myposttype, del que por ejemplo permitiremos editar título, imagen relacionada y contenido. Para hacerlo añadimos este código en el fichero functions.php de nuestro tema:

register_post_type( ‘myposttype’,
array(
‘public’ => true,
‘has_archive’ => true,
‘show_ui’ => true,
‘rewrite’ => array(
‘slug’ => “myposttype”,
‘with_front’ => true,
),
‘supports’ => array(‘title’,’editor’,’thumbnail’)
)
);

A continuación creamos nuestra taxonomía:

$args=array(
‘hierarchical’ => true ,
‘labels’ => array(
‘name’ => ‘My taxonomy’,
‘single_name’ => ‘mytaxonomy’,
‘add_new_item’ => ‘Añadir nueva entrada’,
‘edit_item’ => ‘Editar entrada’
),
‘rewrite’ => array(
‘slug’ => ‘mytaxonomy’,
‘with_front’ => true, ‘hierarchical’ => true // This will allow URL’s like “/locations/boston/cambridge/”
),
);

register_taxonomy( ‘mytaxonomy’, ‘myposttype’, $args );

Una vez hecho esto, al acceder a nuestro admin ya podremos editar nuestro nuevo tipo de post, añadir entradas y categorizarlo según nuestra nueva taxonomy.

Ahora bien, cómo editar esta página de taxonomía para que sea única y distinta de las demás?

Necesitaremos crear una plantilla de nombre taxonomy-mytaxonomy.php (obviamente sustituyendo mytaxonomy por el slug de tu taxonomía). Lo más sencillo es copiar el contenido de la plantilla de taxonomía por defecto (la que se verá si no creamos nuestra plantilla), es decir taxonomy.php.

Antes de saltar ansiosos sobre el teclado, deberemos solucionar otro problema que se nos preseneta: dependiendo del tema o de la plantilla que estemos usando, podemos encontrarnos que directamente esta plantilla nos muestre sus entradas mientras que nosotros necesitemos recuperar información de nuestra taxonomía. Para hacerlo, necesitamos la función de wordpress get_term_by():

$term = get_term_by( ‘slug’, get_query_var( ‘term’ ), get_query_var( ‘taxonomy’ ) );

A partir de aquí ya podemos printar los campos standard de nuestra taxonomía. Por ejemplo

echo $term->description;

Para acabar de redondearlo con más campos propios de nuestra taxonomía, podríamos añadirle a ésta custom fields (mejor con este fantástico plugin, que merecería un post para él solo). Eso sí, para recuperar estos custom fields tendremos que trabajar un poco más de lo normal, por ejemplo, para un campo de texto mi_texto asignado a nuestra taxonomía:

echo get_field(‘my_text’,’mytaxonomy_’.$term->term_id);

Y hasta aquí este tutorial, espero que os haya servido de ayuda!

Deja un comentario

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

Utilizamos cookies de terceros para recoger información sobre sus visitas y su uso de nuestra web. En caso de continuar navegando por esta web entenderemos que acepta el uso de estos dispositivos. Más información: Política de Cookies .

ACEPTAR
Aviso de cookies
Artimedia