À propos de ce tutoriel
Dans ce chapitre nous allons parler du hook pre_get_posts
. Ce hook permet d'altérer une requête avant son éxécution et va notamment permettre d'altérer la requête principale de WordPress pour y ajouter des filtres spécifiques.
/**
* @param WP_Query $query
*/
function montheme_pre_get_posts ($query) {
if (is_admin() || !is_search() || !$query->is_main_query()) {
return;
}
if (get_query_var('sponso') === '1') {
$meta_query = $query->get('meta_query', []);
$meta_query[] = [
'key' => SponsoMetaBox::META_KEY,
'compare' => 'EXISTS',
];
$query->set('meta_query', $meta_query);
}
}
add_action('pre_get_posts', 'montheme_pre_get_posts');
Vous pouvez aussi utiliser le filtre query_vars
pour permettre à WordPress de gérer de nouveau mots clef au niveau de l'URL.
function montheme_query_vars ($params) {
$params[] = 'sponso';
return $params;
}
add_filter('query_vars', 'montheme_query_vars');