✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Tutorial de tema de WordPress para principiantes – Parte 12: Consulta de publicación personalizada

8

En esta lección final, aprenderemos cómo escribir su propia consulta de publicaciones y recorrerlas sin interrumpir el ciclo principal en la plantilla. Haremos una parte de plantilla para publicaciones individuales que muestre publicaciones relacionadas en la misma categoría.

Lo que haremos en esta lección es una consulta de publicaciones relacionadas en nuestra vista de publicación única, mostrando un máximo de 3 publicaciones, del tipo de publicación, en la misma categoría o categorías que la publicación en la que estamos, excluyendo la publicación actual en sí, y aleatorizar las publicaciones que se muestran. También veremos estrategias para no estropear el ciclo anidado.

Plantilla de publicaciones relacionadas

Hagamos que las publicaciones relacionadas sean una parte de la plantilla, que aprendimos en la parte 10. De esa manera no complicamos demasiado single.phpy hacemos que nuestro código sea más reutilizable. Coloca el pedido de esta nueva pieza de plantilla donde desees. Lo colocaré justo antes de solicitar la plantilla de comentarios:

Ahora, hagamos un nuevo archivo vacío en nuestra carpeta de temas y asígnele el nombre related-posts.php. Con este archivo, estamos listos para sumergirnos en la creación de una consulta de publicación personalizada.

Consulta de publicación personalizada

Si quieres hacer una consulta personalizada de publicaciones, tienes algunas opciones, pero te recomiendo que te acostumbres a la clase WP_Query. Marque esta página de documentación, ya que la consultará con frecuencia, porque hay muchas opciones. Le mostraré un ejemplo práctico de cómo configurar una consulta haciendo referencia a la documentación de cada especificación que queremos agregar.

Si desea obtener más información sobre cómo consultar publicaciones, tengo una publicación que profundiza sobre eso.

Para hacer una consulta de publicación personalizada, llamaremos new WP_Query(), le pasaremos una serie de argumentos y almacenaremos su resultado en una variable. Y luego usaremos exactamente el mismo bucle que hemos usado antes en nuestras plantillas (eche un vistazo al bucle original aquí para comparar). Pero necesitamos decirle al bucle que pase por la variable, en lugar de la global (que es la publicación única).

Así es como se verá el bucle al agregarlo a una consulta personalizada:

Como puede ver, el ciclo es exactamente el mismo, usando have_postsy the_post. La diferencia es que los llamamos sobre el $related_postsobjeto. Si omitimos la $related_postsparte, WordPress asume automáticamente que es la consulta global de publicaciones.

También puede notar la llamada a la función wp_reset_postdata()justo después del bucle. Así es como "limpiamos después de nosotros mismos" después de una consulta personalizada con WP_Query. Recuerde que the_post()configura el objeto de publicación global para que podamos usar the_title()etc. Y como ya estamos dentro de un bucle (el que está en single.php), debemos asegurarnos limpiamos y restablecemos la publicación de nuevo a la publicación única después de que hayamos terminado. Si no restablecemos los datos de la publicación, cualquier cosa después de esto se referirá a la última publicación relacionada que revisamos. ¡Esto puede ser un gran problema! En nuestro ejemplo, tener una plantilla de comentarios que siga a esto. Omitir el restablecimiento hará que la plantilla de comentarios muestre comentarios de la última publicación relacionada en el ciclo. ¡Y no la única publicación que estamos viendo en realidad!

Implementando nuestro bucle personalizado

Muy bien, comencemos a implementar el bucle personalizado en nuestro related-posts.php. Agregué un contenedor y un título, pero como de costumbre, puede ajustar el HTML como desee:

Ahora veremos el poder de la reutilización en las piezas de plantilla. Digamos que dentro de este bucle personalizado queremos mostrar exactamente el mismo contenido que mostramos en nuestro content-loop.php, que usamos en nuestras plantillas de archivo. Todo lo que tenemos que hacer es solicitar esta parte de la plantilla dentro de nuestro ciclo personalizado, ¡ya estamos listos para manejar el resultado de cada publicación!

Ahora todo lo que queda es agregar los argumentos a nuestra consulta posterior, asegurándonos de obtener lo que queremos. Repasemos los argumentos uno por uno.

Construyendo los argumentos para nuestra consulta de publicación personalizada

No queremos obtener más publicaciones que 3. En la documentación (sección "Parámetros de paginación"), el argumento para esto es posts_per_page. Así que agregamos el elemento de matriz:

Queremos asegurarnos de que WordPress obtenga publicaciones y no páginas u otra cosa. En “Parámetros de tipo de publicación" encontramos:

Queremos evitar que la única publicación en la que estamos aparezca en nuestra consulta de publicaciones relacionadas, porque eso no tiene sentido, ¿verdad? La documentación nos dice en "Parámetros de publicación y página" que podemos agregar la ID de la publicación en una matriz para post__not_in:

También queremos aleatorizar las publicaciones; porque, de forma predeterminada, obtendrá las últimas publicaciones publicadas y eso puede volverse bastante repetitivo rápidamente a medida que avanza en las publicaciones. Afortunadamente, WordPress tiene una función para esto en la forma en que ordena las publicaciones; en “Ordenar y ordenar por parámetros” encontramos:

Finalmente, queremos consultar las publicaciones que están dentro de las mismas categorías que la publicación en la que nos encontramos. Para hacer esto, primero debemos, antes de los argumentos de la consulta, llevar las categorías a la única publicación en la que nos encontramos. En "Parámetros de categoría" vemos que podemos proporcionar una matriz de ID de categoría a category__in. Afortunadamente, WordPress tiene una función para obtener ID de categoría para una publicación; wp_get_post_categories()que podemos usar directamente como valor para el parámetro. ¡Perfecto!

Aquí está la consulta final y sus argumentos:

Actualice y debería ver 3 publicaciones en la parte inferior de la vista única. Actualice varias veces para ver que cambian porque le dijimos a WordPress que los aleatorizara. Nota: si tiene menos de 3 publicaciones en la misma categoría, obtendrá menos de 3 publicaciones.

¡Eso es todo! Ahora ya sabe cómo consultar las publicaciones que desee. La página de documentación de WP_Query es extremadamente útil para ajustar su consulta, porque aquí hay posibilidades realmente ilimitadas. Te animo a que juegues con los parámetros y tal vez intentes crear una parte de plantilla separada para usar en publicaciones relacionadas.

Fuente de grabación: awhitepixel.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More