En un tutorial anterior, demostré cómo crear un archivo de taxonomía que enumera las publicaciones por término de taxonomía.
Este tutorial es similar porque muestra cómo separar las publicaciones en sus archivos, pero utiliza una estructura diferente y un archivo de plantilla diferente. Lo que le mostraré cómo hacerlo aquí es crear una plantilla de archivo para una taxonomía que enumera las publicaciones por tipo de publicación.
Esto puede ser útil si ha registrado un tipo de publicación que desea mantener separado de las publicaciones normales o de otro tipo de publicación, pero tiene una taxonomía que se aplica a ambas. Por ejemplo, si está listando libros y artículos como diferentes tipos de publicaciones, pero tendrá temas comunes como su taxonomía (por ejemplo, WordPress).
En el ejemplo que usaré aquí, trabajaré con el tipo de publicación "animales" como lo hice en el tutorial anterior, pero esta vez también trabajaré con publicaciones normales. Primero listaré animales con el término consultado y luego listaré publicaciones de blog con ese término.
Crearé un tema que es un tema secundario de veinte y catorce, por lo que si usa los archivos de origen para este tutorial, también necesitará que ese tema esté instalado en su sitio. En la hoja de estilos de mi tema, agrego lo siguiente:
/ * Nombre del tema: WPTutsPlus Creación de un archivo de taxonomía para enumerar publicaciones por tipo de publicación URI de tema: http://rachelmccollin.co.uk/wptutsplus-tax-archive-by-post-type/ Descripción: Tema para apoyar el tutorial de WPTutsPlus sobre la creación Un archivo de taxonomía personalizado. Tema infantil para el tema Veinte catorce. Autor: Rachel McCollin Autor URI: http://rachelmccollin.co.uk/ Plantilla: veinte catorce Versión: 1.0 * / @import url ("... /twentyfourteen/style.css");
Eso es todo lo que necesito agregar para crear el tema de mi hijo. Si está utilizando su propio tema, puede omitir este paso..
Nota: si siguió mi otro tutorial sobre la creación de una plantilla de archivo de tipo de publicación personalizada, puede usar el tema que creó para eso, ya que utiliza los mismos tipos de publicaciones y taxonomía. Solo necesitarás hacer una modificación que resaltaré en esta sección y agregaré un nuevo archivo de plantilla para el archivo de taxonomía..
El siguiente paso es registrar el tipo de publicación 'animal' y una taxonomía 'familia animal'. Crear un funciones.php
archivo para su tema y en primer lugar agregue la función 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 por debajo de ese paso, registre la taxonomía familiar aminal..
Si está trabajando con el tema creado en el tutorial anterior, deberá agregar array ('animal,' post ')
a sus argumentos para la función, intención de sólo 'animal'
.
// registrar una taxonomía llamada función 'Familia Animal' wptp_register_taxonomy () register_taxonomy ('animal_cat', array ('animal', 'post'), array ('labels' => array ('name' => 'Animal Families' , 'singular_name' => 'Animal Family', 'search_items' => 'Search Animal Families', 'all_items' => 'All Animal Families', 'edit_item' => 'Edit Animal Families', 'update_item' => ' Actualizar Animal Family ',' add_new_item '=>' Add New Animal Family ',' new_item_name '=>' New Animal Family Name ',' menu_name '=>' Animal Family ',),' hierarchical '=> true,' sort '=> true,' args '=> array (' orderby '=>' term_order '),' rewrite '=> array (' slug '=>' animal-family '),' show_admin_column '=> true)); add_action ('init', 'wptp_register_taxonomy');
Guarde el archivo de funciones y verá que su nuevo tipo de publicación y taxonomía aparecen en el administrador de su sitio..
Ahora agregue algunos datos - He agregado algunos animales y publicaciones a la familia 'Caninos'.
Ahora crea un archivo llamado taxonomía-animal_cat.php
. Esta será la plantilla de archivo para la nueva taxonomía..
Copie el código envoltorio de su tema en este archivo para que tenga elementos y clases en común con el resto de su tema. Estoy copiando de veinte y catorce, si estás usando tu propio tema, copia de eso. Copie todo excepto el encabezado y el bucle, y agregue algunos comentarios en la parte superior para recordarle para qué sirve este archivo:
4. Identificar el objeto consultado
Para poder mostrar el nombre del término que se consulta y definir sus consultas en los dos bucles que va a crear, debe identificar el objeto consultado y guardarlo como una variable..
Agregue lo siguiente en algún lugar cerca de la parte superior de su plantilla de archivo (lo estoy agregando debajo del
get_header ()
llamada):Lo usarás en el siguiente paso.
5. Salida del encabezado de archivo
Antes de agregar sus bucles, debe generar un encabezado para su página de archivo. Dentro de la apertura de la
#contenido
div, agregue el siguiente código:nombre; ?>
6. El primer bucle
Debajo del encabezado, debe agregar su primer bucle, usando
WP_Query
Como necesitarás definir los argumentos..Primero define la consulta:
// Defina la consulta $ args = array ('post_type' => 'animal', 'animal_cat' => $ term-> slug); $ consulta = nueva WP_Query ($ args);Tenga en cuenta que esto utiliza el
término $
variable que ya has definido.Y luego agregue el bucle, generando un enlace a cada animal en una lista desordenada:
if ($ query-> have_posts ()) // muestra el nombre del término en una etiqueta de encabezado echo 'Animales en el '. $ término-> nombre. ' Familia
'; // mostrar los títulos de los posts en una lista echo '
Es importante incluir dos cosas aquí:
wp_reset_postdata ()
para restablecer la consulta, siempre debe usar esto con WP_Query
.El segundo bucle es casi idéntico al primer bucle, excepto por los argumentos de consulta:
'post', 'animal_cat' => $ term-> slug); $ consulta = nueva WP_Query ($ args); if ($ query-> have_posts ()) // muestra el nombre del término en una etiqueta de encabezado echo 'Publicaciones en el blog sobre el '. $ término-> nombre. ' Familia
'; // mostrar los títulos de los posts en una lista echo '
Ahora guarda tu archivo de plantilla y previsualiza el archivo. Deberías ver dos listas, una de animales y la otra de publicaciones:
Así es como se crea un archivo de taxonomía para enumerar las publicaciones por tipo de publicación. Puedes ampliar esta técnica para hacer que tus páginas de archivo sean más interesantes:
Estoy seguro de que puedes pensar en más posibilidades.!