Icono del sitio Imacreste

Crear taxonomías en WordPress

Una taxonomía es una forma de agrupar información. En WordPress tenemos en las entradas las taxonomías de categorías y etiquetas. Pero también podemos crear nuevas taxonomías para poder organizar contenido de forma más lógica.

Ejemplo de uso, si creamos un módulo que sea recetas podemos añadirle la opción de organizarlas mediante categorías o etiquetas, pero igual sería más lógico que el nombre fuese ingredientes o tipos de recetas, etc.

Estructura de la nueva taxonomía

La función que permite la creación de una nueva taxonomía es, register_taxonomy($name,$modulo, $parametros).

$name: nombre interno de la taxonomía.

$modulo: referencia al nombre interno al módulo donde se creará la taxonomía. (Módulo: recetas, taxonomía: ingredientes). De este modo tendremos un menú: Recetas, que contiene un bloque para catalogarlas por ingredientes, de este modo podemos dar de alta los ingredientes y luego cada receta asociarla a estos ingredientes.

$parametros.

add_action('init', 'nueva_taxonomia');

funtion nueva_taxonomia(){

register_taxonomy('ingredientes','recetas',array('hierarchical' => true, 'label' => 'Ingredientes', ));

}

La creación debe producirse dentro de un conector init (que se ejecuta en la fase inicial de WordPress) y debemos crear antes el módulo al que mencionamos en $módulo (Recetas).

La visualización del gestor de la nueva taxonomía será similar a las categorías y etiquetas de una entrada. Y se añadirán a una entrada desde el alta o edición de la misma.

Utilizar la taxonomía

Wp_tag_cloud($parametros): permite crear una nube de etiquetas. Consulte los parametros aquí.

//Muestra una nube con 5 ingredientes
<?php wp_tag_cloud(array('taxonomy' => 'ingredientes', 'number' =>5));?>

WP_Query(): podemos mostrar las entradas de una taxonomía concreta en un plugin o en un tema.

//filtramos los contenidos de recetas, que tengan asignado el ingrediente arroz
$argumentos = array('post_type' => 'recetas', 'tax_query' => array(array('taxonomy' => 'ingredientes', 'terms' => 'arroz')));
$recetas_arroz=new WP_Query($argumentos);

Get_the_term_list($id, $taxanomyName, ‘titulo’, ‘,’, »): Muestra las etiquetas de una taxonomía de la entrada indicada. Se usa dentro del bucle, en el ejemplo ponemos el título de las etiquetas y las separamos por comas.

//Muestra todos los ingredientes de la receta que se esta visualizando
get_the_term_list($post->ID,'ingredientes','Ingredientes de la receta: ',',','');

Get_terms($taxanomyName): devuelve un array con todas las etiquetas de la taxonomía definida.

//Listado de todos los ingredientes
$ingredientes = get_terms('ingredientes');
foreach ($ingredientes as $ingrediente){
echo $ingrediente->name;
}

Más información en el codex:

https://codex.wordpress.org/Function_Reference/register_taxonomy

Salir de la versión móvil