J'ai une requête ajax qui retourne le résultat d'une boucle WP_Query.
Je souhaite détecter dans le filtre pre_get_posts l'instance spécifique de wp_query utilisée dans le gestionnaire ajax.
J'ai pensé placer un paramètre personnalisé dans les $ args de WP_Query dans le gestionnaire ajax:
$args= array(...,
'ajax' => 'AJAX',//custom param for detection of specific WP_Query instance
....);
et en détectant de cette manière l'instance spécifique dans pre_get_post:
if(isset($query->query_vars['ajax']){
Do stuff
}
Je ne sais pas si cela a un sens pour vous ...
Merci
Vous pouvez accéder aux variables de requête (y compris personnalisées) via la méthode WP_Query::get()
.
Par exemple:
$my_query = new WP_Query( array(
...
'wpse105219_custom_var' => 'foobar',
...
) );
Pour 'attraper' ceci à pre_get_posts
:
add_action( 'pre_get_posts', 'wpse105219_pre_get_posts', 10 );
function wpse105219_pre_get_posts( $query ){
if( $query->get( 'wpse105219_custom_var' ) == 'foobar' ){
//Alter $query
}
}