私はWordPressの検索結果を調整する方法を探していました。特定の親の下にある子ページをWordPressの検索結果から隠す方法
これは私が欲しいものです:私のサイトで
私はポスト、ページ&とカスタムポストタイプを持っています。今、他のページの子ページにある特定のページがあります。たとえば、Services
と呼ばれる親ページがあり、その下に5つの子ページがあり、その下にABC Service
、XYZ Service
という名前の子ページがあるとします。
全ての記事
ページ(いないサービスページとその下のすべての子ページ):
今私はワードプレスの検索結果では、唯一の次のものを返したいです。したがって、
Services
ページと、親ページがServices
と設定されている5つの子ページ以外のすべてのページが検索結果に表示されます。その他のカスタムポストタイプ
これは私がやったことです:
まず私は、サブページをチェックするために小さな関数を作成しました:
function ism_is_subpage() {
$post = get_post();
if (is_page() && $post->post_parent) {
return $post->post_parent;
} else {
return false;
}
}
このI後それを渡すためにワードプレスpre_get_posts
フィルタコールを作成しました。このように:
add_filter('pre_get_posts', function($query) {
if (!$query->is_admin && $query->is_search) {
$query->set('post_type', array('post', 'page', 'other-post-type1'));
}
return $query;
});
は、しかし、問題は、私は私が私の望ましい結果を得ていない午前、ism_is_subpage()
を呼び出すどんなにです。
お気軽にお問い合わせください。
こんにちは、お返事ありがとうございます。いくつかの質問を聞きたいんです。上記のpost_idの最初のページで、親ページを置いてもらいたいですか?また、私が言及したように、投稿、ページ、カスタム投稿タイプについて言及する方法はありません。私は検索にも表示したくないカスタムの投稿タイプがあるからです。 – iSaumya
編集のチェックボックスをオンにします。 – ksno
素晴らしい。編集していただきありがとうございます。だから私はもう 'ism_is_subpage()'は必要ないと思われます。最後の疑問が1つだけあります。 'post_parent__not_in'と' post__not_in'の両方を使う理由は?これは 'post__not_in'のようなもので、' Services'ページ自体が検索に表示されないようにします。 'post_parent__not_in'は、' Services'ページの子が検索に表示されないようにします。私は正しい? – iSaumya