De forma predeterminada, la página principal de su blog de WordPress muestra sus publicaciones más recientes en orden descendente. Pero si está utilizando categorías en su sitio y sus lectores querrán ver las novedades en cada categoría, es posible que desee que su página de blog se vea diferente..
En este tutorial te mostraré cómo hacerlo. Demostraré cómo:
Para seguir este tutorial, necesitarás:
El primer paso es configurar el tema. Voy a crear un tema secundario del tema Twenty Fourteen, con solo dos archivos: style.css
y index.php
.
Aquí está mi hoja de estilo:
/ * Nombre del tema: muestra la publicación más reciente en cada URI de tema de categoría: http://code.tutsplus.com/tutorials/display-the-most-recent-post-in-each-category--cms-22677 Versión: 1.0.0 Descripción: tema para acompañar el tutorial sobre cómo mostrar la publicación más reciente de cada término en una taxonomía para Tutsplus, en http://bitly.com/14cm0yb Autor: Rachel McCollin URI del autor: http://rachelmccollin.co.uk Licencia: GPL-3.0 + Licencia URI: http://www.gnu.org/licenses/gpl-3.0.html Ruta del dominio: / lang Texto Dominio: tutsplus Plantilla: veinte catorce * / @import url ('... / twentyfourteen / style .css ');
Volveré a este archivo más adelante para agregar estilo, pero por ahora, todo WordPress debe reconocer el tema secundario..
Como quiero que la página principal de mi blog muestre la última publicación en cada categoría, voy a crear una nueva index.php
archivo en mi tema hijo.
Primero voy a copiar el index.php
el archivo de Twenty Fourteen y edite el bucle y otro contenido para que se vea así:
El primer paso es identificar las categorías en tu blog. Inmediatamente después de la apertura. Esto usa el Entonces estoy usando Ahora necesitas definir los argumentos para tu consulta. Dentro de los tirantes, agregue esto: Esto traerá solo una publicación en la categoría actual. A continuación, inserte su consulta, utilizando el Esto dará como resultado la imagen, el título y el extracto destacados de cada publicación, cada uno incluido en un enlace.. Echemos un vistazo a cómo se ve ahora: Como puedes ver, hay un problema. Mi página muestra la publicación más reciente en cada categoría, pero está duplicando las publicaciones porque a veces una publicación será la publicación más reciente en más de una categoría. Vamos a arreglar eso. Por encima de la línea donde agregó el Esto crea una matriz vacía llamada A continuación, agregue una nueva línea debajo de la opción de su consulta, para que las dos primeras líneas se vean así: Esto agrega el ID de la publicación actual a la Finalmente, agregue un nuevo argumento a sus argumentos de consulta para evitar la publicación de cualquier publicación en esta matriz. Tus argumentos ahora se verán así: Esto usa el Guarda tu ¡Eso es mejor! Ahora tus publicaciones no están duplicadas. En este momento todo está un poco extendido, con las imágenes destacadas encima del título de la publicación y el extracto. Añadamos un poco de estilo para hacer flotar la imagen a la izquierda.. En su tema Ahora el contenido se adapta mejor a la página y se presenta mejor: Podría adaptar esta técnica para trabajar con diferentes tipos de contenido o taxonomías. Por ejemplo: A veces puede ser útil mostrar las últimas publicaciones en tu blog de otra manera que no sea simplemente en orden cronológico. Aquí he demostrado una técnica para mostrar la última publicación en cada una de las categorías de tu blog, asegurándome de que las publicaciones no se dupliquen si están en múltiples categorías..get_categories ()
Función para obtener una lista de las categorías en el blog. Por defecto, esto se buscará en orden alfabético y no se incluirán las categorías vacías. Esto funciona para mí, así que no estoy agregando argumentos adicionales..foreach ($ categorias como $ categoria)
para decirle a WordPress que ejecute cada una de estas categorías sucesivamente y ejecute el código dentro de las llaves. El siguiente paso será crear una consulta que se ejecutará para cada una de esas categorías..Definir argumentos de consulta
$ args = array ('cat' => $ category-> term_id, 'post_type' => 'post', 'posts_per_page' => '1',);
Ejecutando la consulta
WP_Query
clase:$ consulta = nueva WP_Query ($ args); if ($ consulta-> have_posts ()) ?>
Último en nombre; ?>:
have_posts ()) $ query-> the_post (); ?> ">
→', 'veinte catorce' ) ); ?> Evitar la duplicación de mensajes
get_categories ()
función, añadir esta línea:$ do_not_duplicate = array ();
$ do_not_duplicate
, que utilizaremos para almacenar el ID de cada publicación como se muestra y luego para comprobar si el ID de cualquier publicación que se consulte más adelante se encuentra en esa matriz.have_posts ()) $ query-> the_post (); $ do_not_duplicate [] = $ post-> ID; ?>
$ do_not_duplicate
formación.$ args = array ('cat' => $ category-> term_id, 'post_type' => 'post', 'posts_per_page' => '1', 'post__not_in' => $ do_not_duplicate);
'post__not_in'
argumento que busca una matriz de ID de publicación.index.php
Archivo y echar un vistazo a la página de su blog de nuevo:Añadiendo estilo
style.css
archivo, agregue lo siguiente:.listado h2 margen izquierdo: 10px; .category-listing img float: left; margen: 10px 2%; .category-listing .entry-title clear: none;
Adaptar esta técnica a diferentes tipos de contenido
get_categories ()
con get_terms ()
y cambiar el 'gato'
Argumento de consulta a uno que busca términos de taxonomía.'post_type' => 'post'
argumento en su consulta argumentos con su tipo de publicación.para cada
instrucciones para ejecutar múltiples bucles.single.php
página para mostrar un enlace a la última publicación en cada categoría después del contenido de la publicación. Si hace esto, deberá agregar el ID de la página actual que se muestra a la $ do_not_duplicate
formación.Resumen