Saltar al contenido

WordPress wp query

julio 21, 2022

Wp_query foreach

Uno de los puntos fuertes de WordPress es su rico almacenamiento de datos. A cada entrada, página o contenido adicional se le asignan múltiples propiedades y atributos en los que puedes buscar y descubrir nueva información para servir a tus usuarios.

WordPress proporciona varias formas incorporadas para que los usuarios aprovechen esta información, incluyendo categorías, etiquetas, autores y barras de búsqueda. Sin embargo, ¿qué pasa si quiere proporcionar una lista más curada de entradas para los visitantes del sitio?

WP_Query es una clase PHP para construir consultas a la base de datos de WordPress y devolver entradas, páginas u otros objetos personalizados para mostrar en la página. Permite a los desarrolladores construir búsquedas complejas, eliminando la necesidad de escribir consultas SQL por separado.

WP_Query proporciona accesos directos y funciones integradas para personalizar el bucle, que es el proceso para mostrar el contenido en una página determinada. Con este enfoque en El Bucle, WP_Query es la opción preferida para los desarrolladores de temas de WordPress que buscan personalizar el contenido y la apariencia de las páginas.

Sin embargo, es necesario enfatizar que invocar la clase WP_Query sin proporcionar ningún argumento no sacará ningún contenido de la base de datos. Los muchos parámetros disponibles para WP_Query serán examinados en una sección posterior. Por ahora, vamos a añadir el parámetro cat (abreviatura de categoría) con un argumento de 2, que es el ID de la categoría de ficción.

Get_posts

WP_Query es una clase definida en wp-includes/class-wp-query.php que se ocupa de los entresijos de la petición de un post (o página) a un blog de WordPress. El wp-blog-header.php (o la clase WP en la versión 2.0) le da al objeto $wp_query la información que define la solicitud actual, y luego $wp_query determina con qué tipo de consulta está tratando (posiblemente un archivo de categorías, un archivo de fechas, un feed o una búsqueda), y obtiene los posts solicitados. Conserva una gran cantidad de información sobre la solicitud, que puede ser extraída en una fecha posterior.

  Como hacer un sitemap

La mayoría de las veces se puede encontrar la información que se desea sin tener que lidiar con el interior de la clase y las variables globales. Hay un montón de funciones que puedes llamar desde cualquier lugar que te permitirán obtener la información que necesitas.

Hay dos escenarios principales en los que puede querer usar WP_Query. El primero es averiguar qué tipo de petición está atendiendo WordPress en ese momento. Las propiedades $is_* están diseñadas para mantener esta información: utilice las etiquetas condicionales para interactuar aquí. Este es el escenario más común para los escritores de plugins (el segundo normalmente se aplica a los escritores de temas).

Consulta Wp orderby

Me encontré con un problema muy extraño. Por alguna razón algunos puestos no relacionados se obtienen utilizando el objeto WP_Query sin importar si paso el parámetro post__in con un par de ids de puestos que existen en mi base de datos.

Y como puedes ver ya he especificado el array para la clave ‘post__in’, esos registros ya existen en la base de datos, pero cuando vuelco esa variable. Veo que de hecho devolvió 6 posts, este es el extracto de la variable volcada:

SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.ID IN (21757,9595) AND wp_posts.post_type = ‘post’ AND (wp_posts.post_status = ‘publish’ OR wp_posts.post_status = ‘private’)

Lo he ejecutado manualmente en PhpMyAdmin y me ha devuelto dos filas, lo cual es correcto. Pero no consigo entender cómo devuelve 6 posts de la forma en que lo hace, parece que la clave post__in no se respeta en absoluto.

post__in (array) – usa los ids de los posts. Especifica los posts a recuperar. ATENCIÓN Si usas posts pegajosos, serán incluidos (¡precedidos!) en los posts que recuperes lo quieras o no. Para suprimir este comportamiento utilice ignore_sticky_posts.

  Justificar en wordpress

Wp-query aleatorio

Estoy tratando de consultar el custom post type de los productos y todas las etiquetas dentro de la variable $terms. Quiero que esto funcione si hay una sola etiqueta o múltiples etiquetas. Las etiquetas no son exclusivas de los tipos de negocio, pero las etiquetas generales de post

Array ( [0] => WP_Term Object ( [term_id] => 98 [name] => Sombreros [slug] => sombreros [term_group] => 0 [term_taxonomy_id] => 98 [taxonomy] => post_tag [description] => [parent] => 0 [count] => 0 [filter] => raw ) [1] => WP_Term Object ( [term_id] => 96 [name] => Hoodie [slug] => hoodie [term_group] => 0 [term_taxonomy_id] => 96 [taxonomy] => post_tag [description] => [parent] => 0 [count] => 0 [filter] => raw )

Aquí estamos diciendo productos donde sus babosas son sudaderas, gorras o camisas. Para más información consulta los ejemplos en https://developer.wordpress.org/reference/classes/wp_query/#taxonomy-parameters

Tu problema es que la var $terms contiene objetos WP_Term mientras que estás configurando la consulta de taxonomía para esperar un array de slugs de términos. Si tiene una matriz de objetos WP_Term y desea obtener el valor de un determinado campo de cada objeto, puede utilizar wp_list_pluck() para hacerlo.

Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad