el propósito de este texto no es reemplazar la documentación oficial, que siempre debe consultarse. Su objetivo es poner en un solo lugar lo que los principiantes deben saber antes de comenzar a buscar más información.
- qué es una consulta?
- lo que es ?
- etiquetas condicionales y jQuery
- creando sus propios bucles: Jquery y get_posts ()
- crear un bucle con
- creando un bucle con get_posts ()
- diferencia entre Jquery y get_posts ()
- Globalesquery x_query y Globais x_the_query
- Por qué no se debe usar query_posts () en los archivos de tema?
- cómo cambiar la consulta principal? Utilizar pre_get_posts
- otro ejemplo: eliminar una categoría de la lista de entradas de blog
- conclusión
qué es una consulta?
Query en inglés significa consulta y normalmente es el término utilizado para referirse a una declaración en SQL (Structured Query Language, es decir, lenguaje para Consultas estructuradas). En
lo que es ?
es la clase PHP detrás de todas las búsquedas de contenido en
la clase jQuery se activa en todas las solicitudes realizadas a su sitio, con la excepción de las excepciones de direcciones controladas por plugins que interrumpen el flujo normal. Cada vez que llamamos a una página, una publicación, un término de taxonomía, etc.
etiquetas condicionales y jQuery
creando sus propios bucles: Jquery y get_posts ()
cuando nos referimos al bucle en la palabra estamos hablando de iterar (sin la n) por las publicaciones seleccionadas. Por lo general, solo tenemos un bucle, que siempre se parece al siguiente código:
si hay publicaciones, itere sobre ellas. La primera instrucción dentro de while
es the_post()
, que le dice a $post
, a través del método setup_postdata()
de la clase.
así es como se ve el bucle principal, es decir, la iteración a través del conjunto de publicaciones que encontró al decodificar la solicitud y buscar los contenidos correspondientes. Si necesitamos otro conjunto de posts (contenido relacionado, contenidos de una determinada categoría fuera de su archivo o posts publicados después de lo que está siendo mostrado, por ejemplo) podemos hacerlo de dos maneras: creando un nuevo objeto
crear un bucle con
un ejemplo simple de cómo crear un bucle con
observe cómo la prueba y la iteración sobre have_posts()
continúan allí, al igual que the_post()
, pero esta vez como métodos de la variable que creamos.
la función reset_postdata() sirve para restaurar la variable global $post
a su estado anterior a nuestra consulta, es decir, pondrá de nuevo en la global $post
el post de la global $wp_query
, que veremos más adelante.
creando un bucle con get_posts ()
el mismo ejemplo usando la función get_posts()
:
la función get_the_title() acepta como parámetro un post diferente al de la variable global $post
. Si necesita usar la función the_content (), por ejemplo, debe cambiar la global, de la siguiente manera:
diferencia entre Jquery y get_posts ()
la diferencia básica es a lo que tendrá acceso. Puedes acceder a la cantidad de posts encontrados en total ($query->found_posts
) y al número de páginas posibles ($query->max_num_pages
), por ejemplo. La función get_posts()
por otro lado trae algunos argumentos ya completados además de que, por defecto, es un poco más rápida: pasa el parámetro no_found_rows
como verdadero, evitando que la consulta final tenga la opción SQL_CALC_FOUND_ROWS
y, con eso, exime a MySQL de pasar la cantidad total de filas encontradas.
Globalesquery x_query y Globais x_the_query
en este proceso de interpretar la solicitud y generar el objeto de la clase x_query, crea dos variables globales: $wp_query
, que probablemente hayas visto en alguna parte, y $wp_the_query
, que siempre será la copia original de lo solicitado por el usuario. Si alguien se mete con $wp_query
, al menos podemos recuperarla a su estado normal con $wp_the_query
. Esto es exactamente lo que hace la función.
Por qué no se debe usar query_posts () en los archivos de tema?
Este es el flujo predeterminado de una solicitud a una dirección de su sitio fuera del panel:
no debe usar query_posts () porque ya se ha llamado antes. Al volver a llamarla, duplicará el procesamiento (pidiéndole a
la paginación es otro ejemplo de cómo usar query_posts()
puede obstaculizar su trabajo. Si desea mostrar 15 publicaciones por página en una categoría determinada y tratar de sobrescribir la cantidad predeterminada del PPT a través de query_posts()
, tendrá una situación en la que el primer elemento de la segunda página debería ser el 16º, pero en realidad es solo el 11..
cómo cambiar la consulta principal? Utilizar pre_get_posts
Usar query_posts()
ha sido desaconsejable durante algún tiempo. De ahí para acá, muchos han explicado el porqué y alentado a los desarrolladores a usar la action pre_get_posts, con destaque especial para el Leo Baiano, que apodó la action cariñosamente de preetinho (el uso de juegos de palabras con el preetinho del Leo Baiano está autorizado en los comentarios).
el uso es simple. Para eliminar la paginación en la búsqueda, por ejemplo, puede usar el siguiente código en el functions.php
de su tema:
el código asigna su función a hook pre_get_posts
, por lo que su función se ejecutará cada vez que se procese una consulta. Dentro de ella necesitamos asegurarnos de que vamos a trabajar sólo en las consultas necesarias, así que probamos si realmente estamos en la parte» frontal » del sitio (de esa forma no estropeamos nada del panel), si estamos en la consulta principal de la página, es decir, si la consulta en cuestión es $wp_the_query
y si esta consulta es de una búsqueda. Si todo esto es cierto cambiamos el atributo posts_per_page
a -1
, que significa no tener límite de posts.
otro ejemplo: eliminar una categoría de la lista de entradas de blog
si necesita muchos cambios puede unirse a todos en una sola función: