Header Ads Widget

Ticker

6/recent/ticker-posts

Cómo usar WP_Query en WordPress


En este tutorial de WordPress, veremos la clase WP_Query, que es realmente el caballo de batalla para obtener datos de publicaciones de su base de datos de WordPress. WP_Query brinda a los desarrolladores de temas un control total sobre lo que se envía a "The Loop", como lo llamamos. Al dominar WP_Query, uno gana la capacidad de recorrer cualquier publicación que le guste y en cualquier archivo de tema donde se considere necesario. Con este conocimiento, puede crear páginas de inicio personalizadas que pueden mostrar publicaciones de una categoría en una sección determinada de la página y publicaciones de otra categoría en una sección diferente de una página. Hay tantas opciones disponibles para usted con WP_QueryEchemos un vistazo ahora.


Un repaso de bucle

Echemos otro vistazo al esqueleto del bucle de WordPress, ya que realmente es la carne y las patatas del desarrollo de temas de WordPress.

En el fragmento de arriba vemos el bucle de WordPress. Básicamente dice, si hay publicaciones, recorra todas, y si no hay publicaciones, envíe un mensaje que indique esto. La magia del bucle realmente ocurre en ese bucle while. Todo lo que esté dentro del ciclo while se repite una vez por cada publicación recuperada por la consulta actual. Dentro del bucle while, tiene control total sobre cómo generará y formateará las publicaciones. Esto significa que puede incluir cualquier combinación de HTML y PHP necesaria para crear el efecto que busca. Tú eliges qué partes de la publicación incluir o excluir, como el título, el autor, el cuerpo, etc. En algunos casos, quizás solo desee mostrar el título. En otros, tal vez el título y el extracto sirvan. Aún en otros escenarios, es posible que desee mostrar el título y el contenido completo de cada publicación.


¿Qué publicaciones se están repitiendo?

Entonces, ahora que vemos cómo controlar el formato y la salida de las publicaciones en el ciclo while, surge la siguiente pregunta. ¿Cómo controlamos nosotros, como desarrolladores de temas, qué publicaciones se repiten realmente? Hasta ahora, hemos estado a merced de lo que WordPress ha decidido hacer un bucle. Ahora podemos aprender a controlar este aspecto de WordPress.


Consultas basadas en URL

Suponiendo que no se haya agregado una lógica de bucle personalizado a su tema, el método predeterminado de cómo WordPress elige qué publicaciones repetir se basa en la URL o el enlace permanente actualmente activo. Por ejemplo, si visita http://wordpresstutorial.dev/category/php/, las publicaciones con una categoría de PHP se introducen en el ciclo. Por lo tanto, solo las publicaciones que tengan una categoría de PHP deben verse en la página. Si probamos esto, esto es exactamente lo que vemos.
wp_query por categoría

Entonces, es lógico que si visitamos http://wordpresstutorial.dev/category/javascript/, la categoría de JavaScript se incluirá en el ciclo y solo deberíamos trabajar con publicaciones que tengan una categoría de JavaScript en ese momento. . Una vez más, podemos visitar esta URL y ver que este es el caso.
wp_query por categoría a través de URL

Entonces podemos ver que WordPress hace un gran trabajo al usar la URL para determinar qué publicaciones repetir. Solo vimos un ejemplo de visitar varias URL de categoría, pero esto también funciona para páginas de archivo, páginas de autor, etiquetas y muchas más. Sin embargo, en algún momento, es probable que desee poder especificar exactamente qué publicaciones se repiten en los archivos de su tema controlando el bucle usted mismo y no confiando en qué URL particular está activa actualmente. Ciertamente puede hacer eso, y veremos cómo ahora.


Una página de inicio personalizada

Una buena forma de demostrar esta técnica es configurar una página de inicio personalizada donde podamos elegir qué publicaciones mostrar. Como sabemos, de forma predeterminada, WordPress simplemente mostrará las últimas publicaciones en nuestra página de inicio, independientemente de cualquier otro aspecto de esa publicación. No importa la categoría, etiqueta o autor, WordPress solo busca las publicaciones más recientes y las muestra como tales. Ahora, tenemos un blog de ejemplo basado en tutoriales que tiene algunas categorías. Sería bueno mostrar una columna con un par de publicaciones recientes de una categoría y otra con publicaciones de una categoría diferente.


Un poco de trabajo de campo inicial

Primero debemos decirle a WordPress que queremos usar una página estática como página de inicio. Si este es el caso, ¿dónde veremos todas nuestras publicaciones? Podemos crear una nueva página, que actuará como índice principal de publicaciones de blog. Así que crearemos una página con el nombre de 'Página de inicio' y otra con el nombre de 'Todas las publicaciones'.

Creando la página de inicio en el Panel de WordPress.
creando una página de inicio personalizada

Creando una página para mostrar todas las publicaciones del blog.
agregar una página de lista de blogs para mostrar todas las publicaciones

Configurar la página de inicio y la página de todas las publicaciones en Configuración.
lectura de configuración de wordpress

Agregar un enlace a Todas las publicaciones en el menú principal.
agregar un enlace a todas las publicaciones en el menú principal

¡Okay! Tenemos el trabajo de campo fuera del camino. En este punto, deberíamos tener el texto personalizado que especificamos para la página de inicio cuando visitamos la URL base de http://wordpresstutorial.dev/ y parece que esto funciona correctamente.
página de inicio personalizada de wordpress

¡No temáis! Todavía puede ver todas las publicaciones del blog en su sitio web. ¡Todo lo que tienes que hacer es visitar http://wordpresstutorial.dev/all-posts/ y esto es exactamente lo que vemos!
todas las publicaciones vía url wordpress

Para ser justos, nuestra página de inicio es bastante escasa en este momento. Tal como está ahora, el archivo page.php es responsable de representar la salida de nuestra página de inicio. De hecho, tenemos muchas páginas en este sitio. Se trata de Acerca de nosotros, Todas las publicaciones, Página de inicio, Servicios y Página de ejemplo de WordPress. Todos estos se procesan a través de page.php. Sin embargo, dijimos que queríamos algo personalizado para la página de inicio. ¿Cómo podemos hacer esto?


Introduciendo front-page.php

Cuando configura una página específica para que sea la página de inicio en su sitio de WordPress como hicimos en este tutorial, WordPress buscará un archivo en su carpeta de temas llamado front-page.php para representar esa página en particular. Si no está presente, WordPress simplemente usa page.php para manejar la representación. Así que sigamos adelante y creemos front-page.php en nuestra carpeta de temas ahora. Simplemente pondremos un poco de texto en este archivo para mostrar que, de hecho, alimenta la página de inicio.

front-page.php

portada-php

¡Entonces funciona! Por supuesto, esto es bastante tonto y no agrega mucho valor, así que sigamos adelante y coloquemos algunas marcas en el archivo front-page.php. Nuestro objetivo será simplemente mostrar el menú de navegación y el contenido principal. Realmente no queremos mostrar el título de la página, ya que es simplemente contenido estático lo que estamos mostrando en la página de inicio.

front-page.php

Actualicemos también la página de inicio en el editor de WordPress para que tenga más texto con este texto: “¡Hola! ¡Esta es la página de inicio de http://wordpresstutorial.dev! ¡Éste sitio web es asombroso! En el panel de WordPress, esta es una página y se llama 'Página de inicio'. Cualquier usuario puede ingresar a esta página y editarla con el Editor de WordPress para realizar cambios en este contenido estático aquí. Podemos proporcionar cualquier información sobre el sitio que nos guste, aquí mismo en esta página de inicio estática. A un cliente le puede gustar la posibilidad de editar este texto fácilmente sin necesidad de sumergirse en HTML o PHP para hacerlo. Sin embargo, debajo de este texto estático, tendremos datos actualizados dinámicamente al aprovechar WP_Query ".
actualice fácilmente el contenido estático en la página de inicio

Ver la página de inicio tiene un efecto agradable ahora, ¿no crees? Una vez más, una persona no técnica ahora puede actualizar fácilmente este contenido sin editar HTML o PHP.
mira esa página de inicio


Presentamos WP_Query

Ahora necesitamos iniciar el proceso de obtención de datos personalizados de la base de datos usando WP_Query (). WP_Query () funciona pasándole varios argumentos en función de lo que desea recuperar. Digamos que queremos recuperar todas las publicaciones que pertenecen a la categoría de JavaScript. Al leer los parámetros de categoría para WP_Query () podríamos hacer algo como esto:

Primero, buscamos todas las publicaciones que tienen un nombre de categoría de javascript. Esencialmente, esta es la babosa para la categoría de JavaScript. También puede buscar por ID de categoría si lo prefiere. A continuación, var_dump el contenido de lo que está almacenado en $ javascriptPosts para que podamos examinar. Aquí está esa salida en nuestro caso:

/home/vagrant/Code/wordpresstutorial/wordpress/wp-content/themes/customtheme/front-page.php:6:
objeto (WP_Query) [538]
  public 'consulta' => 
    matriz (tamaño = 1)
      'category_name' => cadena 'javascript' (longitud = 10)
  public 'query_vars' => 
    matriz (tamaño = 64)
      'category_name' => cadena 'javascript' (longitud = 10)
      'error' => cadena '' (longitud = 0)
      'm' => cadena '' (longitud = 0)
      'p' => int 0
      'post_parent' => cadena '' (longitud = 0)
      'subpost' => cadena '' (longitud = 0)
      'subpost_id' => cadena '' (longitud = 0)
      'adjunto' => cadena '' (longitud = 0)
      'attach_id' => int 0
      'nombre' => cadena '' (longitud = 0)
      'estática' => cadena '' (longitud = 0)
      'pagename' => cadena '' (longitud = 0)
      'page_id' => int 0
      'segundo' => cadena '' (longitud = 0)
      'minuto' => cadena '' (longitud = 0)
      'hora' => cadena '' (longitud = 0)
      'día' => int 0
      'monthnum' => int 0
      'año' => int 0
      'w' => int 0
      'etiqueta' => cadena '' (longitud = 0)
      'gato' => int 4
      'tag_id' => cadena '' (longitud = 0)
      'autor' => cadena '' (longitud = 0)
      'author_name' => cadena '' (longitud = 0)
      'feed' => cadena '' (longitud = 0)
      'tb' => cadena '' (longitud = 0)
      'paged' => int 0
      'meta_key' => cadena '' (longitud = 0)
      'meta_value' => cadena '' (longitud = 0)
      'vista previa' => cadena '' (longitud = 0)
      's' => cadena '' (longitud = 0)
      'frase' => cadena '' (longitud = 0)
      'título' => cadena '' (longitud = 0)
      'campos' => cadena '' (longitud = 0)
      'menu_order' => cadena '' (longitud = 0)
      'embed' => cadena '' (longitud = 0)
      'categoría__in' => 
        matriz (tamaño = 0)
          vacío
      'categoría__not_in' => 
        matriz (tamaño = 0)
          vacío
      'categoría__and' => 
        matriz (tamaño = 0)
          vacío
      'post__in' => 
        matriz (tamaño = 0)
          vacío
      'post__not_in' => 
        matriz (tamaño = 0)
          vacío
      'post_name__in' => 
        matriz (tamaño = 0)
          vacío
      'tag__in' => 
        matriz (tamaño = 0)
          vacío
      'tag__not_in' => 
        matriz (tamaño = 0)
          vacío
      'tag__and' => 
        matriz (tamaño = 0)
          vacío
      'tag_slug__in' => 
        matriz (tamaño = 0)
          vacío
      'tag_slug__and' => 
        matriz (tamaño = 0)
          vacío
      'post_parent__in' => 
        matriz (tamaño = 0)
          vacío
      'post_parent__not_in' => 
        matriz (tamaño = 0)
          vacío
      'author__in' => 
        matriz (tamaño = 0)
          vacío
      'author__not_in' => 
        matriz (tamaño = 0)
          vacío
      'ignore_sticky_posts' => booleano falso
      'suppress_filters' => booleano falso
      'cache_results' => booleano verdadero
      'update_post_term_cache' => booleano verdadero
      'lazy_load_term_meta' => booleano verdadero
      'update_post_meta_cache' => booleano verdadero
      'post_type' => cadena '' (longitud = 0)
      'posts_per_page' => int 10
      'nopaging' => booleano falso
      'comments_per_page' => cadena '50' (longitud = 2)
      'no_found_rows' => booleano falso
      'order' => string 'DESC' (longitud = 4)
  public 'tax_query' => 
    objeto (WP_Tax_Query) [540]
      public 'consultas' => 
        matriz (tamaño = 1)
          0 => 
            matriz (tamaño = 5)
              ...
      public 'relación' => cadena 'Y' (longitud = 3)
      protegido 'table_aliases' => 
        matriz (tamaño = 1)
          0 => cadena 'wp_term_relationships' (longitud = 21)
      public 'queried_terms' => 
        matriz (tamaño = 1)
          'categoría' => 
            matriz (tamaño = 2)
              ...
      public 'primary_table' => string 'wp_posts' (longitud = 8)
      public 'primary_id_column' => cadena 'ID' (longitud = 2)
  public 'meta_query' => 
    objeto (WP_Meta_Query) [539]
      public 'consultas' => 
        matriz (tamaño = 0)
          vacío
      public 'relación' => nulo
      public 'meta_table' => nulo
      public 'meta_id_column' => nulo
      public 'tabla_primaria' => nulo
      public 'primary_id_column' => nulo
      protegido 'table_aliases' => 
        matriz (tamaño = 0)
          vacío
      protegidas 'cláusulas' => 
        matriz (tamaño = 0)
          vacío
      protected 'has_or_relation' => booleano falso
  public 'date_query' => booleano falso
  public 'request' => string 'SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) DONDE 1 = 1 Y ( 
  wp_term_relationships.term_taxonomy_id IN (4)
) AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 10 '(longitud = 378)
  public 'posts' => 
    matriz (tamaño = 2)
      0 => 
        objeto (WP_Post) [322]
          public 'ID' => int 90
          public 'post_author' => cadena '1' (longitud = 1)
          public 'post_date' => string '2017-07-20 16:07:26' (longitud = 19)
          public 'post_date_gmt' => cadena '2017-07-20 16:07:26' (longitud = 19)
          public 'post_content' => string 'Esta es una publicación de blog de JavaScript de ejemplo para agregar a las diversas publicaciones de blog de ejemplo en este tutorial de WordPress. Estamos aprendiendo sobre WordPress, PHP y JavaScript durante este tutorial en el que creamos un tema de WordPress desde cero. Esto significa que hemos comenzado con 0 líneas de código y hemos trabajado hasta tener un tema funcional para nuestra instalación de WordPress. Si le gusta JavaScript, se lo pasará en grande personalizando comportamientos en su sitio web de WordPress en la interfaz y el panel de administración. (longitud = 504)
          public 'post_title' => string 'Cómo aprender JavaScript' (longitud = 23)
          public 'post_excerpt' => cadena '' (longitud = 0)
          public 'post_status' => cadena 'publicar' (longitud = 7)
          public 'comment_status' => cadena 'abierto' (longitud = 4)
          public 'ping_status' => cadena 'abierto' (longitud = 4)
          public 'post_password' => cadena '' (longitud = 0)
          public 'post_name' => cadena 'cómo-aprender-javascript' (longitud = 23)
          public 'to_ping' => cadena '' (longitud = 0)
          public 'pinged' => cadena '' (longitud = 0)
          public 'post_modified' => cadena '2017-07-20 16:11:04' (longitud = 19)
          public 'post_modified_gmt' => cadena '2017-07-20 16:11:04' (longitud = 19)
          public 'post_content_filtered' => cadena '' (longitud = 0)
          public 'post_parent' => int 0
          public 'guid' => cadena 'http://wordpresstutorial.dev/?p=90' (longitud = 34)
          public 'menu_order' => int 0
          public 'post_type' => cadena 'post' (longitud = 4)
          public 'post_mime_type' => cadena '' (longitud = 0)
          public 'comment_count' => cadena '0' (longitud = 1)
          public 'filter' => string 'raw' (longitud = 3)
      1 => 
        objeto (WP_Post) [544]
          public 'ID' => int 9
          public 'post_author' => cadena '1' (longitud = 1)
          public 'post_date' => string '2017-06-13 15:08:46' (longitud = 19)
          public 'post_date_gmt' => cadena '2017-06-13 15:08:46' (longitud = 19)
          public 'post_content' => string 'Esta es una publicación de blog de JavaScript de ejemplo para agregar a las diversas publicaciones de blog de ejemplo en este tutorial de WordPress. Estamos aprendiendo sobre WordPress, PHP y JavaScript durante este tutorial en el que creamos un tema de WordPress desde cero. Esto significa que hemos comenzado con 0 líneas de código y hemos trabajado hasta tener un tema funcional para nuestra instalación de WordPress. Si le gusta JavaScript, se lo pasará en grande personalizando comportamientos en su sitio web de WordPress en la interfaz y el panel de administración. (longitud = 506)
          public 'post_title' => string 'Publicación de blog de JavaScript' (longitud = 20)
          public 'post_excerpt' => cadena '' (longitud = 0)
          public 'post_status' => cadena 'publicar' (longitud = 7)
          public 'comment_status' => cadena 'abierto' (longitud = 4)
          public 'ping_status' => cadena 'abierto' (longitud = 4)
          public 'post_password' => cadena '' (longitud = 0)
          public 'post_name' => cadena 'javascript-blog-post' (longitud = 20)
          public 'to_ping' => cadena '' (longitud = 0)
          public 'pinged' => cadena '' (longitud = 0)
          public 'post_modified' => cadena '2017-06-29 17:01:39' (longitud = 19)
          public 'post_modified_gmt' => cadena '2017-06-29 17:01:39' (longitud = 19)
          public 'post_content_filtered' => cadena '' (longitud = 0)
          public 'post_parent' => int 0
          public 'guid' => cadena 'http://wordpresstutorial.dev/?p=9' (longitud = 33)
          public 'menu_order' => int 0
          public 'post_type' => cadena 'post' (longitud = 4)
          public 'post_mime_type' => cadena '' (longitud = 0)
          public 'comment_count' => cadena '0' (longitud = 1)
          public 'filter' => string 'raw' (longitud = 3)
  public 'post_count' => int 2
  public 'current_post' => int -1
  public 'in_the_loop' => booleano falso
  public 'post' => 
    objeto (WP_Post) [322]
      public 'ID' => int 90
      public 'post_author' => cadena '1' (longitud = 1)
      public 'post_date' => string '2017-07-20 16:07:26' (longitud = 19)
      public 'post_date_gmt' => cadena '2017-07-20 16:07:26' (longitud = 19)
      public 'post_content' => string 'Esta es una publicación de blog de JavaScript de ejemplo para agregar a las diversas publicaciones de blog de ejemplo en este tutorial de WordPress. Estamos aprendiendo sobre WordPress, PHP y JavaScript durante este tutorial en el que creamos un tema de WordPress desde cero. Esto significa que hemos comenzado con 0 líneas de código y hemos trabajado hasta tener un tema funcional para nuestra instalación de WordPress. Si le gusta JavaScript, se lo pasará en grande personalizando comportamientos en su sitio web de WordPress en la interfaz y el panel de administración. (longitud = 504)
      public 'post_title' => string 'Cómo aprender JavaScript' (longitud = 23)
      public 'post_excerpt' => cadena '' (longitud = 0)
      public 'post_status' => cadena 'publicar' (longitud = 7)
      public 'comment_status' => cadena 'abierto' (longitud = 4)
      public 'ping_status' => cadena 'abierto' (longitud = 4)
      public 'post_password' => cadena '' (longitud = 0)
      public 'post_name' => cadena 'cómo-aprender-javascript' (longitud = 23)
      public 'to_ping' => cadena '' (longitud = 0)
      public 'pinged' => cadena '' (longitud = 0)
      public 'post_modified' => cadena '2017-07-20 16:11:04' (longitud = 19)
      public 'post_modified_gmt' => cadena '2017-07-20 16:11:04' (longitud = 19)
      public 'post_content_filtered' => cadena '' (longitud = 0)
      public 'post_parent' => int 0
      public 'guid' => cadena 'http://wordpresstutorial.dev/?p=90' (longitud = 34)
      public 'menu_order' => int 0
      public 'post_type' => cadena 'post' (longitud = 4)
      public 'post_mime_type' => cadena '' (longitud = 0)
      public 'comment_count' => cadena '0' (longitud = 1)
      public 'filter' => string 'raw' (longitud = 3)
  public 'comment_count' => int 0
  public 'current_comment' => int -1
  public 'found_posts' => cadena '2' (longitud = 1)
  public 'max_num_pages' => flotador 1
  public 'max_num_comment_pages' => int 0
  public 'is_single' => booleano falso
  public 'is_preview' => booleano falso
  public 'is_page' => booleano falso
  public 'is_archive' => booleano verdadero
  public 'is_date' => booleano falso
  public 'is_year' => booleano falso
  public 'is_month' => booleano falso
  public 'is_day' => booleano falso
  public 'is_time' => booleano falso
  public 'is_author' => booleano falso
  public 'is_category' => booleano verdadero
  public 'is_tag' => booleano falso
  public 'is_tax' => booleano falso
  public 'is_search' => booleano falso
  public 'is_feed' => booleano falso
  public 'is_comment_feed' => booleano falso
  public 'is_trackback' => booleano falso
  public 'is_home' => booleano falso
  public 'is_404' => booleano falso
  public 'is_embed' => booleano falso
  public 'is_paged' => booleano falso
  public 'is_admin' => booleano falso
  public 'is_attachment' => booleano falso
  public 'is_singular' => booleano falso
  public 'is_robots' => booleano falso
  public 'is_posts_page' => booleano falso
  public 'is_post_type_archive' => booleano falso
  private 'query_vars_hash' => cadena 'c7f2d38df04d2e63027c41e3c1f384ad' (longitud = 32)
  private 'query_vars_changed' => booleano falso
  public 'thumbnails_cached' => booleano falso
  privado 'palabras vacías' => nulo
  privado 'compat_fields' => 
    matriz (tamaño = 2)
      0 => cadena 'query_vars_hash' (longitud = 15)
      1 => cadena 'query_vars_changed' (longitud = 18)
  privado 'compat_methods' => 
    matriz (tamaño = 2)
      0 => cadena 'init_query_flags' (longitud = 16)
      1 => cadena 'parse_tax_query' (longitud = 15)

Si está bastante familiarizado con PHP, esta salida tiene mucho sentido para usted. Si PHP no es su especialidad, esta salida puede parecerle un poco extraña. No es para preocuparse. Básicamente, lo que vemos aquí es que tenemos un Objeto de tipo WP_Query. En otras palabras, creamos una instancia de WP_Class () y la almacenamos en $ javascriptPosts. Si esto es nuevo para usted, asegúrese de consultar nuestros tutoriales de programación orientada a objetosNombramos la variable de esta manera simplemente para recordarnos que las publicaciones contenidas en este objeto tienen una categoría de JavaScript. Puede nombrar esta variable como desee. Así que veamos cómo podemos hacer uso de esto en nuestros archivos de tema.


Entonces, ¿cómo introducimos estas consultas personalizadas en el bucle?

Me alegro de que lo hayas preguntado, lo haremos ahora mismo. Básicamente, los bucles personalizados funcionarán igual que el bucle predeterminado con algunas pequeñas excepciones. Cuando realiza una llamada a have_posts () y the_post (), debe hacerlo desde el nuevo objeto que ha creado. Entonces creamos un nuevo objeto en $ javascriptPosts, por lo tanto, nuestro código incluiría esas llamadas así:

También tenga en cuenta que usamos wp_reset_postdata () como una mejor práctica. Parece trivial, pero de hecho es bastante importante. La documentación nos dice lo siguiente:

Utilice esta función para restaurar la variable $ post global del bucle de consulta principal después de un bucle de consulta secundario utilizando el nuevo WP_Query. Restaura la variable $ post a la publicación actual en la consulta principal.

Las diferencias entre el ciclo de consulta principal y los ciclos de consulta secundarios son:

el bucle principal se basa en la solicitud de URL y se procesa antes de que se carguen
las plantillas. Los bucles secundarios son consultas (utilizando el nuevo WP_Query) en la plantilla de tema o archivos de complemento

En otras palabras, use esta función para no estropear las consultas predeterminadas de WordPress cuando intente crear consultas personalizadas a través de WP_Query ().

¿Y si quisiéramos buscar publicaciones en la categoría PHP? La siguiente consulta debería funcionar bastante bien:


Poniendolo todo junto

Limpiemos ahora nuestro archivo front-page.php para que tengamos nuestro contenido estático en la parte superior, y luego nuestro nuevo contenido dinámico lado a lado debajo del contenido estático. Tendremos el bucle principal en la parte superior del archivo que genera la página de inicio, luego haremos uso de nuestras dos nuevas consultas personalizadas que usan WP_Query () para buscar todas las publicaciones de JavaScript y también todas las publicaciones de PHP. Los mostraremos en dos columnas una al lado de la otra. También tenga en cuenta que hacemos uso de esa función get_template_part () que es muy útil.

front-page.php

style.css

¡Los resultados se ven muy bien! Ahora tenemos una página de inicio estática en la parte superior, que cualquiera puede actualizar fácilmente con solo ingresar al Panel de WordPress y editar esa página. Debajo de eso, ahora también tenemos nuestras dos secciones que muestran publicaciones recientes de dos categorías diferentes en un diseño tipo revista. ¡Muy genial!
página de inicio estática y contenido dinámico personalizado


Cómo usar WP_Query en el resumen de WordPress

En este tutorial aprendimos mucho sobre WP_Query () y cómo usarlo para buscar datos personalizados que cumplan con nuestros requisitos. Para nuestros propósitos, usamos WP_Query () para configurar un diseño de revista personalizado en nuestra página de inicio al obtener publicaciones de una categoría en un WP_Query () personalizado, y luego obtener otro conjunto de publicaciones de una categoría diferente en una segunda llamada a WP_Query (). ¡Esto es literalmente solo la punta del proverbial iceberg! WP_Query () puede aceptar muchos más argumentos que veremos en futuros tutoriales. Por ahora, espero que se sienta mucho más cómodo haciendo uso de WP_Query () que cuando empezamos.


Publicar un comentario

0 Comentarios