Cómo recuperar los argumentos de WP_Query de la página actual

5 jun 2020, 18:21:07
Vistas: 16.1K
Votos: 3

Contexto

Estoy desarrollando un plugin que muestra publicaciones geolocalizadas en un mapa de Leaflet. Quiero agregar un parámetro de shortcode para mostrar un mapa solo con los marcadores de las publicaciones del loop actual. ¡Esta función sería genial en la página de resultados de búsqueda, por ejemplo!

Pregunta

¿Existe alguna forma de obtener los argumentos de WP_Query de la página actual? Quiero obtener esos argumentos para crear un nuevo WP_Query y agregar algunos más para filtrar solo las publicaciones geolocalizadas.

No sé si es posible, siempre creo nuevos objetos WP_Query desde cero.

¡Gracias!

0
Todas las respuestas a la pregunta 3
1

¿Has probado a usar $wp_query?

global $wp_query;
var_dump($wp_query->query_vars);

Para una sola variable, puedes usar get_query_var

O podrías intentar simplemente volcar el $_POST, var_dump( $_POST );

O tal vez var_dump( $GLOBALS['post'] );

5 jun 2020 20:51:14
Comentarios

$wp_query->query_vars es exactamente lo que estaba buscando :) ¡Gracias!

Camille V. Camille V.
8 jun 2020 17:45:31
1

Creo que puedes usar rewind_posts() para obtener los posts de la consulta actual y luego modificarlos desde ahí:

https://developer.wordpress.org/reference/functions/rewind_posts/

Este artículo tiene una buena explicación de rewind_posts(), diferenciándola de wp_reset_postdata() y wp_reset_query(): https://digwp.com/2011/09/3-ways-to-reset-the-wordpress-loop/

5 jun 2020 19:36:56
Comentarios

Gracias por tu tiempo, pero no era exactamente lo que estaba buscando (estaba buscando los argumentos actuales de WP_query)

Camille V. Camille V.
8 jun 2020 17:46:59
0

Otra alternativa es obtenerlo directamente de los argumentos query. Puedes acceder a todos los $args de esta manera.

$query = new WP_Query( $args );

// paginado
$paged_arg = $query->query['paged'];
19 oct 2021 18:39:02