La clase WP_Query es muy fuerte. Le permite crear sus propias consultas personalizadas para ejecutar en cualquier lugar de su sitio web de WordPress, en el contenido principal, en la barra lateral o en cualquier lugar. Es algo que uso mucho, ya sea en archivos de plantilla personalizados o en áreas fuera del contenido, como la barra lateral o el sótano. Y perdí el número cuántas veces codifiqué una consulta personalizada usando wp_quey. Pero es posible evitar toda esta reanudación. Si filtra los argumentos de interrogación, puede escribir una función para cambiar los argumentos y ejecutar una consulta diferente en diferentes lugares. Esto significa que puede escribir un complemento con algunos argumentos predeterminados (o de hecho sin ningún argumento), entonces puede escribir una función en su tema (u otro complemento) que cambia esos argumentos.
Esto no cambiará el bucle que se ejecuta usando los argumentos de interrogación (aunque, si lo desea, puede crear otro filtro para él), pero significa que puede codificar su corte WP_Query y luego puede cambiarlo cuando sea necesario. En esta publicación, le mostraré cómo escribir un complemento con una instancia de filtro WP_QUEY y luego escribir una función en el archivo de base para editar los argumentos. Lo que necesitará para seguir esta publicación, necesitará acceso a algunas cosas:
Una instalación de WordPress Development o pruebas que ejecuta el propio tema o un tema infantil
Un editor de código
También deberá comprender cómo escribir complementos, cómo editar el archivo con funciones y cómo funciona WP_QUEY.
¿Listo? ¡Entonces comencemos! Escribir el complemento WP_Query inicia creando su complemento. Cree una nueva carpeta para su complemento en la carpeta WP-Content/Plugins, luego cree un archivo vacío dentro de él. Siempre creo una carpeta si quiero agregar cualquier estilo, scripts o incluir archivos en mi complemento en una fecha posterior. Aquí están las líneas de apertura de mi complemento: los esenciales 21AF1E226CB9C43FB0DA0E6601798BA se cargan
Ahora agregemos la función WP_QUEY. Comenzaré agregando la variable $ args pero la mantengo vacía:
Cargue los elementos esenciales 21AF1E226CB9C43FB0DA0E6601798BA
Luego agregue el bucle:
Cargue los elementos esenciales 21AF1E226CB9C43FB0DA0E6601798BA
Aquí está la función completa:
Cargue los elementos esenciales 21AF1E226CB9C43FB0DA0E6601798BA
Ahora tenemos una consulta y bucle bastante estándar. Esto ejecutará una consulta basada en argumentos (que actualmente está vacía), luego mostrará un título seguido de una lista de los elementos tomados con enlaces a ellos. Podría usarse para eliminar una lista de publicaciones utilizando categorías, taxonomías, tipos de publicaciones o cualquier otra cosa como argumentos. En este momento, sin embargo, no obtendrá nada, porque esos argumentos están vacíos. Agreguemos algunos argumentos, pero incluirlos en un filtro.
Agregar argumentos de filtro Tome la sección $ Args de su código y edítelo para agregar algunos argumentos. Solo agregaré un argumento para POSTS_PER_PAGE, para limitar el número de publicaciones de salida. No agregaré otros argumentos: de esta manera se mostrarán las cinco últimas publicaciones. Si lo desea, puede agregar algunos argumentos diferentes.
Cargue los elementos esenciales 21AF1E226CB9C43FB0DA0E6601798BA
Hasta ahora, tan simple. Ahora incluyamos esos argumentos en un filtro. Aquí está el código: Cargue el esencial 21AF1E226CB9C43FB0DA0E6601798BA
Este wpmu_filterable_query el único argumento en un filtro llamado wpmu_filterabile_query, que luego puede conectar desde otro complemento, o desde su tema, para cambiar esos argumentos.
Mientras estamos en esto, agregue un filtro a ese encabezado dentro del bucle, porque es un poco genérico. Edite su bucle para incluir un filtro:
Cargue los elementos esenciales 21AF1E226CB9C43FB0DA0E6601798BA
Y eso es todo. Si no decide agregar más filtros al bucle, su complemento está listo. Usando el filtro en su tema, el siguiente paso es escribir algunas funciones en su tema. El primero llamará al gancho de acción WPMU_FILTER_QUERY y mostrarlo en su página. Puede llamar a esto de varias maneras. El primero es adjuntarlo a un gancho de acción en su tema, utilizando la función add_action. Entonces, si su tema tuviera un gancho llamado my_theme_sidebar_hook, eliminaría la consulta en la barra lateral de la siguiente manera:

Cargue los elementos esenciales 21AF1E226CB9C43FB0DA0E6601798BA
El segundo es codificarlo directamente en un archivo de plantilla de tema. Prefiero trabajar con ganchos cuando sea posible, porque me da más flexibilidad, pero si su tema no tiene ganchos, este podría ser el mejor enfoque. Si trabaja con un tercer tema de fiesta, no edite los archivos con el tema directamente; en su lugar, cree una copia en un tema secundario. Luego, en el archivo de plantilla de tema, agregue una llamada a la función wpmu_filterable_quey:
Cargue los elementos esenciales 21AF1E226CB9C43FB0DA0E6601798BA
Simplemente ejecuta la función en su lugar en el archivo de plantilla donde lo coloca. La tercera opción es crear un nuevo archivo de plantilla, como un archivo de plantilla de página, que ejecutará esta consulta en lugar de la consulta predeterminada. En este caso, hará una copia de Page.php a partir de su tema o tema principal y reemplazaría el bucle estándar con la llamada, como se indicó anteriormente. Así es como agrega la función a su tema. Pero, ¿qué pasa con el filtrado de estos argumentos? Filtrando los argumentos de su tema El paso final es escribir una función en el archivo de función para filtrar los argumentos de interrogación. También puede agregar una segunda función para filtrar el título, así como cualquier función para usar cualquier otro filtros que pueda elegir agregar el bucle desde su complemento.
Tenga en cuenta que puede hacer esto usando un complemento si lo desea, pero debido a que ya ha codificado la función en su tema, creo que es mejor agregar este código al archivo de funciones. Imaginemos que ha grabado un tipo de publicación llamada Doohickkey y desea mostrarla en su lugar. Pero en lugar de eliminar seis publicaciones, desea mostrar cuatro. En el archivo con funciones, necesitará este código:
La idea se carga 21AF1E226CB9C43FB0DA0E601798BA
Esto reemplaza el contenido del filtro original con el nuevo contenido de contenido. Tenga en cuenta que si desea conservar alguno de los argumentos en el filtro original, deberá agregarlos a esta función, porque el nuevo código reemplaza el código anterior y no se lo agrega.
Luego agregue una función para editar el texto del título:
La idea se carga 21AF1E226CB9C43FB0DA0E601798BA
Esto eliminará el contenido de la nueva función en lugar de
encabezado
, que está dentro del filtro. Puede cambiar ambas funciones como cree que es apropiado. Al hacer el filtrante wp_query, su código es más eficiente y ahorra tiempo si usa la clase wp_query muchos sitios y desea codificar wp_query wp_query cada vez, esto puede ahorrarle algo para funcionar. En cada sitio donde usa wp_quey, solo tiene que agregar la llamada para la función y la función conectada al gancho de filtro. Si desea que el complemento sea aún más flexible, puede usar un archivo incluye para el bucle en lugar de hornear directamente al complemento y luego para incluir la llamada incluye_once () en un filtro. De esta manera, puede llamar a un archivo que incluye de manera diferente, si lo desea, y puede eliminar una versión diferente del bucle.
¡Espero que hayas encontrado este tutorial de ayuda! Si tiene alguna pregunta sobre el código, háganos saber en los comentarios a continuación.
Etiquetas:
WP_QUEY
homefinance blog