複数のカスタム投稿を対象(固定ページを除く)にした検索結果の表示
-
複数のカスタム投稿を対象にした、検索結果の表示に関しての質問です。
これまで、固定ページを除外した、
複数のカスタム投稿を含む、投稿のみの検索結果を、
function.php内に以下のような形で記述することで実現していました。
検索フォームは、ヘッダー部分に全ページ共通で設置しています。▼共通フォーム部分の記述
<form method="get" id="searchform" action="<?php bloginfo('url'); ?>/"> <dl> <dt>サイト内検索</dt> <input type="text" value="<?php the_search_query(); ?>" name="s" id="s"> <input type="submit" id="searchsubmit" value=""> </dl> </form>
▼fucntion.php内の記述
function SearchFilter($query) { if ( !is_admin() && $query->is_main_query() && $query->is_search() ) { $query->set('post_type', array('post', 'news', 'topics', 'faq', 'blog')); } return $query; } add_filter('pre_get_posts','SearchFilter');
今回、ニュースページ内に、カスタム投稿「news」のみを対象とした検索フォームを設置することとなり、
以下の記事を参考に実装してみました。WordPressで特定のカスタム投稿内だけ検索する検索フォーム
すべての投稿を対象(固定ページを除く)にした検索結果を「search.php」で表示させ、
newsのカスタム投稿からの検索は、テンプレートを分け、
「search-news.php」を利用して表示させたいと思い、
上記サイトを参考にさせていただいたのですが、
この方法ですと、前述の記述で、投稿記事のみ表示されていた検索結果で、
固定ページが除外できなくなってしまいました。ですので、固定ページの除外のため、function.phpに記述していた部分を除き、「search.php」に表示させたいカスタム投稿だけを表示させるように記述を変更したいと思っております。
以下の記述で、ニュースだけの検索結果を表示させることはできました。
▼カスタム投稿「news」のみの記事を検索結果に表示(search-news.php内に記述)
<?php $paged = get_query_var('paged'); query_posts($query_string . '&post_type=news&posts_per_page=-1&paged=' . $paged); ?>
今回、投稿タイプが、「post」「news」「topics」「faq」「blog」の5つとなっているので、
「search.php」内では、上記の5つを指定できればと思ったのですが、
こういった場合に、どうやって複数の投稿を指定すれば良いのかわからない状態となってしまっております。WordPress初心者で理解が足りず、大変申し訳ないのですが、
ご教示いただければと思いますので、よろしくお願いいたします。
- トピック「複数のカスタム投稿を対象(固定ページを除く)にした検索結果の表示」には新たに返信することはできません。