これらは検索クエリに対する私の引数です:
$args = array(
's' =>$s,
'post_type' => array( 'post', 'p24_cases', 'page')
);
これらの引数を使用すると、検索結果に検索ワードを含むすべてのページが表示されます。 「bedankt」という名前のページテンプレートを除いて、すべてのページを表示したい(オランダ語で感謝)。
特定のテンプレートを持つすべてのページを除外するには、meta_query
を実行してカスタムフィールド_wp_page_template
をbedankt
に設定してすべてのページを除外するだけです。 WordPressはページに割り当てられたテンプレートを_wp_page_template
という隠しカスタムフィールドとして保存します。
これを念頭に置いて、私たちは以下を行うことができます
$args = [
's' => $s,
'post_type' => ['post', 'page', 'p24_cases'],
'meta_key' => [
[
'key' => '_wp_page_template',
'value' => 'bedankt.php',
'compare' => 'NOT IN'
]
]
];
あなたは単にそのページの投稿IDを取得する必要があります、そしてそれからpost__not_in
に配列としてそれを渡します
'post__not_in' => [1], // Replace 1 with actual page ID
またはPHP 5.4より前
'post__not_in' => array( 1 ), // Replace 1 with actual page ID