Voici mes arguments pour la requête de recherche:
$args = array(
's' =>$s,
'post_type' => array( 'post', 'p24_cases', 'page')
);
En utilisant ces arguments, les résultats de la recherche montreront toutes les pages contenant le mot de recherche. Je souhaite afficher toutes les pages, à l'exception du modèle de page appelé 'bedankt' (merci en néerlandais).
Pour exclure toutes les pages avec un certain modèle, il vous suffit d'exécuter un meta_query
pour exclure toutes les pages avec le champ personnalisé _wp_page_template
défini sur bedankt
. N'oubliez pas que WordPress enregistre le modèle attribué à une page sous forme de champ personnalisé masqué appelé _wp_page_template
Dans cet esprit, nous pouvons faire ce qui suit
$args = [
's' => $s,
'post_type' => ['post', 'page', 'p24_cases'],
'meta_key' => [
[
'key' => '_wp_page_template',
'value' => 'bedankt.php',
'compare' => 'NOT IN'
]
]
];
Vous devez simplement obtenir l'ID de publication de cette page, puis le transmettre sous forme de tableau à post__not_in
'post__not_in' => [1], // Replace 1 with actual page ID
Ou pré PHP 5.4
'post__not_in' => array( 1 ), // Replace 1 with actual page ID