Descubre cómo ordenar o mostrar entradas dependiendo de un campo personalizado en el bloque de listado de contenido con un poco de código.
El bloque nativo de WordPress que permite mostrar un listado de entradas (query block) ha mejorado muchísimo en las últimas actualizaciones.
De hecho, en este tutorial repaso todas las opciones que ofrece en su interfaz de usuario. Aunque son bastantes, no llega al grado de personalización al que podemos llegar modificando los parámetros de WP_Query
.
Sin embargo, la versión de WordPress 6.1 introdujo un filtro de PHP que permite interaccionar directamente con la consulta (query), con lo cual las posibilidades se amplían casi hasta el infinito.
Por ejemplo, con el siguiente filtro puedes usar un campo personalizado para mostrar o no unas entradas.
Vamos a ver cómo:
Snippet para modificar la consulta del query loop block en base a un campo personalizado
Añade un bloque de listado de contenido y configura los ajustes a tu gusto.
A continuación, añade el siguiente snippet al fichero functions.php o a tu plugin de funcionalidades:
Para ver este código y los otros 2065 snippets de esta web,
identifícate o suscríbete aquí.
En este código utilizas el filtro query_loop_block_query_vars
para modificar la consulta y pedir que muestre solo las entradas que tienen un tiempo de lectura inferior a 5 minutos.
En este caso, toma el dato del campo personalizado creado por el plugin de EditorsKit, pero puedes usar cualquier campo personalizado.
Otra opción, es que solo se muestren las entradas que tengan presente un determinado campo personalizado. Para eso, este sería el código que usarías:
Para ver este código y los otros 2065 snippets de esta web,
identifícate o suscríbete aquí.
Solo tendrías que sustituir _tu_metakey
por la clave del campo personalizado que te interese.
Ya ves que tener un filtro con acceso a la query te da una flexibilidad extra a lo que ofrece la interfaz de usuario. Y este es solo un ejemplo de lo que puedes conseguir.
Puedes acceder a cualquier parámetro de WP_Query
, así que las posibilidades son tremendas.
Eso sí, ten en cuenta que al estar usando un filtro de PHP tienes la limitación de que el resultado solo lo verás en la parte frontal de la web, en el backend no se reflejarán los cambios.
Conclusiones
Ya ves qué fácil es modificar la consulta del bloque nativo de WordPress de listado de contenidos para que muestre u ordene las entradas en base a un campo personalizado.
Si tienes alguna duda te leo en los comentarios. Y si quieres dejarme una sugerencia para futuros tutoriales, envíamela a través del formulario de contacto.
Todo ventajas de ser suscriptor. 😉