Elegir la consulta correcta para el desarrollo de WordPress

Supongamos que desea hacer algo único con cómo se consultan las publicaciones y se muestran en una determinada página de su sitio. Es posible que desee tener más consulta, una para publicaciones recomendadas y otra para publicaciones recientes. O es posible que desee excluir ciertas categorías de publicaciones en la página del blog. Sin embargo, antes de comenzar a codificar, ¿debe tomar una decisión: ¿Qué herramienta de consulta de WordPress debe usar? WordPress incluye varias consultas diferentes: wp_query, query_posts (), get_posts (), get_pages () y pre_get_posts. En muchos casos, puede usar más de estas herramientas para lograr los resultados deseados. Sin embargo, la pregunta sigue siendo, ¿cuál debería usar?
En esta publicación veremos cada una de estas cinco funciones de consulta de WordPress en detalle. Descubriremos cómo funciona cada uno, identificaremos las limitaciones o trampas inherentes y determinaremos los escenarios en los que cada uno debe usarse. Al final de esta publicación, sabrá que puede tomar una decisión educada sobre la herramienta adecuada para sus necesidades de consulta posterior. Movemos directamente a eso. WP_QUEY WP_QUEY es la clase detrás (casi) cada consulta de WordPress. Al cargar una página o publicación en WordPress, se crea un objeto WP_QUEY, $ consulta, atrae datos relevantes de publicación o página. Piense en WP_Query como el motor que alimenta la mayor parte de la consulta de WordPress.
Utiliza WP_Query incluso sin darse cuenta de que lo usa. Al cargar una URL, el núcleo de WordPress crea una base de datos con wp_quey en función de la URL y la configuración que ha aplicado a su sitio. /Example.com/category/wordpress WordPress crea un objeto WP_Query que localiza todas las publicaciones en la categoría de WordPress y Carga todos los datos posteriores. WP_Query Feeds Post y interrogations estándar de página incorporados en WordPress y también se pueden usar para crear una consulta personalizada. Esto se hace con un poco de programación orientada a objetos. Todo lo que tiene que hacer es crear una nueva variable y declararla como una nueva instancia de la clase WP_QUEY, de la siguiente manera: Cargue la idea JPEN365/DC83C6EAF8B76343B4AF18A5C81AB621
Por supuesto, entonces tienes que hacer algo con los resultados de la consulta. Sin embargo, ese algo que excede el propósito de este tutorial. En su lugar, consulte la lista de tutoriales al final de esta publicación si necesita ayuda para poner en práctica WP_Query. Como desarrollador de WordPress, probablemente usará WP_Query más que cualquier otra consulta o gancho. Es versátil y fuerte. Si bien algunas de las otras consultas abordadas en esta publicación pueden ahorrarle una llave presionada en algunos casos, generalmente no puede confundir seleccionando WP_QUEY para sus necesidades de escritura de interrogatorio personalizadas.
La única excepción a esto es que todo lo que tiene que hacer es filtrar los resultados de la consulta estándar. En este caso, pre_get_posts es la herramienta que debe usar. Así que echemos un vistazo más. pre_get_posts pre_get_posts es un gancho, no una función. En lugar de interrogar la base de datos nuevamente, pre_get_posts le permite cambiar el objeto $ consulta antes de interrogar la base de datos: el filtrado eficiente de los resultados devueltos por la consulta estándar. En la mayoría de los casos, pre_get_posts se asocia con etiquetas condicionales para filtrar los resultados de interrogación en situaciones específicas. Por ejemplo, puede usar pre_get_posts para devolver un número diferente de publicaciones en la página de inicio del sitio. Esencialmente, si desea ejecutar la consulta estándar, pero cámbiela de alguna manera, pre_get_posts es la herramienta de trabajo. Hay algunos casos en los que pre_get_posts no funcionará y no debe usarse. El códice de WordPress sugiere dos de estos casos:
El filtro pre_get_posts no debe usarse para cambiar la consulta de plantilla para una sola página, ya que esto interferirá con las propiedades ya establecidas por parse_quey ().
El filtro pre_get_posts no funcionará si se agrega a un archivo de plantilla, como Archive.php, ya que estos archivos se cargan después de que la consulta principal ya se haya ejecutado.
¿Dónde nos deja esto? Esto significa que pre_get_posts es una excelente opción para cambiar el interrogatorio de publicación en el bucle principal de la página inicial, la página del blog y las páginas individuales, como page.php y single.php.
Sin embargo, a veces el interrogatorio estándar no es suficiente. Es posible que desee usar más consultas de WordPress o manipular los resultados de la consulta de una manera que pre_get_posts no le permitirá. En este caso, puede volver a WP_QUEY o leer más para algunas opciones adicionales. Query_posts () Si está buscando tutoriales de WordPress hace unos años, encontrará muchos tutoriales que recomiendan usar Query_Posts (). Sin embargo, los tutoriales modernos recomiendan casi universal contra esto. Este es el por qué. La función Query_Posts () reemplaza el objeto de consulta principal, $ consulta, que es creado y utilizado por el bucle predeterminado por el núcleo de WordPress. Lo hace creando una nueva instancia WP_Query y atribuyéndola al objeto $ consulta. Esto puede hacer que parezca que query_posts () es realmente fuerte y útil. Sin embargo, el juego de bucle básico significa que Query_Posts () tiene grandes desventajas y debe evitarse. La referencia oficial del código de WordPress ofrece varias razones por las cuales el uso de Query_Posts () debe evitarse en la gran mayoría de los casos. Las principales razones invocadas para ello incluyen:
El uso de Query_Posts () puede ralentizar significativamente el tiempo de carga de la página, aumentando el doble del volumen de trabajo requerido para procesar la interrogación.
Debido a que Query_Posts () reemplaza los datos de consulta estándar, puede causar muchos problemas de paginación y puede devastar las páginas que usan más consultas.
En resumen, el uso de Query_Posts () es una propuesta peligrosa. De hecho, la documentación oficial se abre con la advertencia: esta función sobrescribirá por completo la consulta principal y no está destinada al uso de complementos o temas. Su enfoque demasiado simple para cambiar la consulta principal puede ser problemático y debe evitarse siempre que sea posible. Con otras palabras, si codifica un tema o un complemento, que es exactamente lo que la gran mayoría de nosotros, evite usar Query_Posts (). En su lugar, cree un nuevo objeto WP_QUEY completo o use get_posts (), get_pages () o pre_get_posts en su lugar. Get_posts () Piense en la función get_posts () como una instancia modificable y predefinida de la clase WP_Query, porque eso es exactamente. Cuando se usa get_posts (), llame a valores implícitos preestablecidos y úselos para crear una instancia de la clase WP_Query. En cierto sentido, get_posts () se ve mucho con Query_Posts (): Ambos son instancias predefinidas de WP_QUEY. Sin embargo, también son bastante diferentes, porque Query_Posts () reemplaza el objeto $ consulta predeterminado, mientras que get_posts () simplemente crea una consulta completamente nueva, que no interfiere con las variables globales en la forma en que O DO QUERY_POSTS ().
Entonces, ¿cuál es el uso del uso de get_posts ()? ¿Por qué no usas simplemente wp_quey? La respuesta es la comodidad. Si está pensando en usar get_posts (), definitivamente puede lograr lo que intente hacer con WP_Query. Sin embargo, usando get_posts () guarde algunas claves. Hay otra diferencia entre wp_query y get_posts (). Es decir, este último devuelve una serie de publicaciones, mientras que el primero devuelve publicaciones seguidas con The_Post (). Esto significa que get_posts () devuelve todas las publicaciones simultáneamente como una matriz, mientras que wp_query ises por publicaciones uno por uno, get_posts () el contenido relevante de cada publicación como se repite. Básicamente, esto significa que cuando se usa get_posts () use una función foreach para mostrar los resultados, pero use la estructura estándar if … mientras se hace eco en el contenido mientras se usa wp_qury. Otra cosa a tener en cuenta es que, ya que get_posts () No cambiar el objeto Global $ consulta, debe usar SETUP_POSTDATA () para cada publicación para obtener acceso a los métodos y propiedades WP_Query. Aunque puede parecer complicado, realmente no lo es. Mirar:
Cargue el esencial JPEN365/67592C6E5F70553692A002FEA13DA63F
Entonces, ese fragmento de código devolverá cuatro publicaciones de la categoría Slider (probablemente para mostrarlas en una publicación de control deslizante). En primer lugar, nos aseguramos de que la consulta haya devuelto algo con el código IF ($ slider_posts), luego revisamos las publicaciones que muestran el título y el contenido. Usando configurar_postData () podemos usar variables globales, como $ id y $ authordata, así como etiquetas de plantilla como the_itle () y the_content (). Sin configurar los datos de publicación, no pudimos usar esas variables y etiquetas de plantilla. get_pages () Una función de consulta que no recibe mucha atención es la consulta get_pages (). A diferencia de todas las demás consultas en esta publicación, que están relacionadas con WP_Query, get_pages () es una función que omite WP_QUEY e interroga directamente la base de datos. Como get_posts (), esta función devuelve el contenido que localiza en una matriz. Sin embargo, a diferencia de get_posts (), que se puede usar para extraer cualquier publicación de cualquier tipo de publicación (publicaciones, páginas, tipos de publicaciones personalizadas, etc.), get_pages () solo se puede usar para asumir tipos de publicaciones jerárquicas, como como páginas y tipos de publicaciones jerárquicas personalizadas. Además, get_pages () le permite especificar algunos parámetros de consulta que son únicos para los tipos de publicaciones jerárquicas, incluidos ‘Child_of’, ‘Parent’ y ‘Hierchical

. El acceso a estos parámetros es la razón principal por la que podría considerar usar esta consulta. La implementación de la teoría en esta publicación presenté cinco poderosas herramientas de consulta de WordPress, pero realmente no le mostré cómo usarlas. Sin embargo, escribí sobre la escritura de consultas personalizadas en el pasado y puede obtener más información sobre cómo usar estas consultas en sus temas y complementos, verificando estos otros recursos en nuestro blog: una guía en profundidad para la conquista WP_QUEY
WordPress Loop explicado
Cómo organizar publicaciones de WordPress en cualquier orden
Desarrollo de WordPress para usuarios intermedios: consulta y bucles
5 métodos simples para crear consultas personalizadas en WordPress
Resumen Como puede ver, cuando se trata de la consulta de la base de datos de WordPress, las opciones no faltan. Hay al menos cinco herramientas poderosas que los desarrolladores de WordPress pueden usar para obtener la base de datos en la base de datos que desean mostrar. Recapitulemos cada una de las opciones disponibles:
WP_QUEY: clase versátil que alimenta la mayoría de la consulta de WordPress. Es flexible y se puede usar para crear cualquier consulta.
Pre_get_posts: un gancho que se puede usar para refinar el objeto $ consulta antes de interrogar la base de datos, cambiando así de forma segura la consulta predeterminada. Úselo junto con las etiquetas acondicionadas para refinar los resultados de la consulta estándar.
Query_posts (): una instancia sólida de la clase WP_Query que reemplaza el objeto de consulta $ predeterminado y no está destinado a desarrollar el tema o los complementos. No lo uses.
Get_posts (): una instancia de la clase WP_Query que devuelve una serie de publicaciones.Incluye una gama de valores predeterminados que pueden ahorrarle una clave de clave en comparación con la creación de una instancia de WP_QUEY personalizada, pero solo si las opciones predeterminadas son adecuadas para sus necesidades. Varios tipos de publicaciones jerárquicas, como páginas o tipos de personalizados Publicaciones jerárquicas.
¿Tiene alguna pregunta sobre el uso de la consulta de WordPress?¡Compártalos en la sección de comentarios a continuación!
Etiquetas:
desarrollo
Bucle de WordPress
Consulta WP

Copyright statement: Unless otherwise noted, this article is Collected from the Internet, please keep the source of the article when reprinting.

Check Also

gkOVSBm5B8SgiXmo

Shopify vs WooCommerce – ¿Cuál es la mejor plataforma?(Comparación)

Shopify vs WooCommerce

Leave a Reply

Your email address will not be published. Required fields are marked *