De forma predeterminada, WordPress crea archivos que enumeran todas sus publicaciones en orden inverso. Si los usuarios buscan publicaciones en una categoría determinada o con un término de taxonomía determinado, tendrán que visitar la página de archivo de esa categoría o término.
Pero, ¿qué sucede si desea que su archivo principal para un tipo de publicación sea más fácil de usar? En este tutorial, le mostraré cómo crear una página de archivo para un tipo de publicación personalizada que muestre las publicaciones de ese tipo de publicación categorizadas según una taxonomía, de modo que, en lugar de una larga lista, los visitantes verán una lista para cada término de taxonomía.
Para seguir este tutorial, necesitará una instalación de desarrollo de WordPress y un editor de código. Estarás creando un tema que es un tema secundario de veinte y catorce, por lo que necesitarás que esté instalado (que debería ser por defecto).
No voy a mostrarte cómo crear un tema secundario, pero si estás atascado, simplemente echa un vistazo a la hoja de estilos en el paquete de códigos para este tutorial..
En mi experiencia, esta técnica es más comúnmente necesaria para los tipos de correos personalizados y taxonomías en lugar de para los mensajes normales y las categorías o etiquetas, así que comenzaré registrando un tipo de mensaje y taxonomía..
Nota: Estoy usando el mismo tipo de publicación 'animal' que registré en un tutorial anterior sobre la creación de un archivo basado en imágenes. Si quieres llevar las cosas un poco más lejos, puedes combinar la técnica en ese tutorial con la que te muestro aquí y mostrar tus listas de términos de taxonomía con imágenes destacadas..
En el archivo de funciones de su tema, agregue el siguiente código para registrar el tipo de publicación:
// registrar un tipo de publicación personalizada llamada función 'animales' wptp_create_post_type () $ labels = array ('name' => __ ('Animals'), 'singular_name' => __ ('animal'), 'add_new' => __ ('Nuevo animal'), 'add_new_item' => __ ('Agregar nuevo animal'), 'edit_item' => __ ('Editar animal'), 'new_item' => __ ('Nuevo animal'), 'view_item '=> __ (' Ver animal '),' search_items '=> __ (' Buscar animales '),' not_found '=> __ (' No se encontraron animales '),' not_found_in_trash '=> __ (' No se encontraron animales en Basura '),); $ args = array ('labels' => $ labels, 'has_archive' => true, 'public' => true, 'hierarchical' => false, 'support' => array ('title', 'editor', ' extracto ',' campos personalizados ',' miniatura ',' atributos de página '),' taxonomías '=> array (' post_tag ',' categoría '),); register_post_type ('animal', $ args); add_action ('init', 'wptp_create_post_type');
A continuación, agregue el código para registrar la taxonomía:
// registrar una taxonomía llamada función 'Familia Animal' wptp_register_taxonomy () register_taxonomy ('animal_cat', 'animal', array ('labels' => array ('name' => 'Animal Families', 'singular_name' => ' Familia de animales ',' search_items '=>' Buscar familias de animales ',' all_items '=>' Todas las familias de animales ',' edit_item '=>' Editar familias de animales ',' update_item '=>' Actualizar familia de animales ',' add_new_item '=>' Agregar nueva familia de animales ',' new_item_name '=>' Nuevo nombre de familia de animales ',' menu_name '=>' Familia de animales ',),' hierarchical '=> true,' sort '=> true,' args '=> array (' orderby '=>' term_order '),' rewrite '=> array (' slug '=>' animal-family '),' show_admin_column '=> true)); add_action ('init', 'wptp_register_taxonomy');
Una vez que hayas hecho esto, agrega algunos datos. A continuación puede ver los datos que he agregado con algunos términos de taxonomía aplicados. No hago ninguna afirmación sobre la exactitud de mi terminología con respecto a las familias de animales, así que no comente si me equivoco.!
El siguiente paso es crear una plantilla de archivo para el nuevo tipo de publicación. En su tema, cree un nuevo archivo llamado archive-animal.php
.
Como este tema es un tema secundario de veinte y catorce, la plantilla de archivo necesitará el código copiado de ese tema como un contenedor para el bucle personalizado que va a crear. Así que agregue lo siguiente a su plantilla de archivo:
Nota: si está trabajando con su propio tema, copie el código de ajuste del archivo de índice o archivo de su propio tema.
3. Rellenar la plantilla de archivo: obtener términos de taxonomía
Para que su archivo pueda mostrar animales por término de taxonomía, el siguiente paso es buscar esos términos.
En su nueva plantilla, debajo del cierre.
etiqueta (o debajo de la parte inicial de su código de envoltura, si está usando su propio tema), busque los términos usando
get_terms ()
:'count', 'hide_empty' => 0)); ?>Tenga en cuenta que he usado dos parámetros aquí:
orden por
- esto le permite especificar el orden de los términos mostrados. he usado contar
como el valor para que el término con la mayoría de las publicaciones asignadas se muestre primero, pero puede ordenar por nombre o ID. Si deja esto en blanco, WordPress ordenará por nombre. Ver la página del Codex en get_terms ()
para más detalles.hide_empty
- esto le dice a WordPress que no busque ningún término sin las publicaciones asignadas a ellos. Le ahorra tener que comprobar si su consulta tiene alguna publicación más adelante.Habiendo hecho esto, usas para cada()
para decirle a WordPress que pase por cada uno de estos términos y ejecute una consulta que debe definir. Debajo del código que acaba de agregar, inserte lo siguiente:
'animal', 'animal_cat' => $ term-> slug); $ consulta = nueva WP_Query ($ args);
Esto le dice a WordPress que ejecute cada término, y luego define la consulta que debe ejecutar cada vez. Los argumentos para la consulta incluyen el tipo de publicación y el término en el 'animal_cat'
taxonomía, que es el valor de la término $
variable.
Habiendo definido su consulta, necesita agregar un bucle. En primer lugar, escriba el nombre del término que se consulta como encabezado. Debajo de la linea comenzando $ consulta
pero dentro de los tirantes de la para cada
declaración, agregue esta línea:
eco''. $ término-> nombre. '
';
A continuación, agregue el código para contener sus publicaciones en una lista:
// mostrar los títulos de los posts en una lista echo '
Dentro de la lista, ahora agregue su bucle:
// Iniciar el bucle while ($ consulta-> have_posts ()): $ consulta-> the_post (); ?>
Como puede ver, este es un bucle sencillo que genera el título de cada publicación dentro de un enlace a la publicación y no genera ningún contenido. Si lo desea, puede agregar un extracto o una imagen destacada aquí.
Finalmente, reinicie la consulta usando wp_reset_postdata ()
debajo de la línea leyendo eco '';
Así es como se verán ahora tu consulta y tu bucle:
'animal', 'animal_cat' => $ term-> slug); $ consulta = nueva WP_Query ($ args); // mostrar el término nombre en una etiqueta de encabezado echo ''. $ término-> nombre. '
'; // mostrar los títulos de los posts en una lista echo '
Finalmente, guarde su archivo de plantilla y vea su archivo de tipo de publicación. Verás que enumera tus publicaciones por término de taxonomía en lugar de en una larga lista.
Esta técnica es útil cuando desea que los visitantes puedan ver rápidamente los datos categorizados sin tener que mirar un rango de páginas de archivo; lo reúne todo en un solo lugar, pero se clasifica por conveniencia. Aquí hay algunas ideas de cómo podría adaptar la técnica y llevarla más lejos:
get_categories ()
o get_tags ()
.index.php
archivo para mostrar publicaciones por categoría, etiqueta o términos de taxonomía.publicaciones por página
y compensar
en sus argumentos de consulta para hacer esto: vea los detalles de cómo funciona esto en la página Códice WP_Query.publicaciones por página
para limitar el número de publicaciones mostradas para que cada lista tenga la misma longitud. Puedes combinar esto con el estilo para mostrar las listas una al lado de la otra..get_term_link ()
para hacer esto.