Come recuperare gli argomenti di WP_Query della pagina corrente?

5 giu 2020, 18:21:07
Visualizzazioni: 16.1K
Voti: 3

Contesto

Sto sviluppando un plugin che mostra post geolocalizzati su una mappa Leaflet. Voglio aggiungere un parametro allo shortcode per mostrare una mappa con solo i marker dei post del loop corrente. Questa funzionalità sarebbe ottima, ad esempio, nella pagina dei risultati di ricerca!

Domanda

Esiste un modo per ottenere gli argomenti di WP_Query della pagina corrente? Voglio ottenere questi argomenti per creare una nuova WP_Query e aggiungerne altri per filtrare solo i post geolocalizzati.

Non so se sia possibile, ho sempre creato nuovi oggetti WP_Query da zero.

Grazie!

0
Tutte le risposte alla domanda 3
1

Hai provato a usare $wp_query?

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

Per una singola variabile, puoi usare get_query_var

Oppure potresti provare a fare il dump di $_POST, var_dump( $_POST );

O magari var_dump( $GLOBALS['post'] );

5 giu 2020 20:51:14
Commenti

$wp_query->query_vars è esattamente ciò che chiedevo :) Grazie!

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

Credo che tu possa usare rewind_posts() per ottenere i post dalla query corrente, per poi modificarla da lì:

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

Questo articolo fornisce una buona spiegazione di rewind_posts(), differenziandola da wp_reset_postdata() e wp_reset_query(): https://digwp.com/2011/09/3-ways-to-reset-the-wordpress-loop/

5 giu 2020 19:36:56
Commenti

Grazie per il tuo tempo, ma non era esattamente quello che stavo cercando (cercavo gli argomenti correnti di WP_query)

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

Un'altra alternativa è ottenerlo direttamente dagli argomenti query. Puoi accedere a tutti gli $args in questo modo.

$query = new WP_Query( $args );

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