web-dev-qa-db-ja.com

検索をカスタム投稿タイプに制限する

ホームページに検索フォームがあり、サイドバーに検索フォームがあります。ホームページの検索フォームに特定のテンプレートに従って結果を表示させたり、サイドバーの検索フォームに別のテンプレートを表示させたりすることはできますか?

ホームページの検索ボックスを別の方法で表示するようにしたい。そのカスタム投稿。そのため、ユーザーがそのフォームを使用する場合は、そのカスタム投稿からのデータのみが必要です。しかしサイドバーのデフォルトのワードプレス検索ボックスはウェブサイト全体から結果を得るべきです。

例えば。検索ページの結果を地図で表示

ありがとう

2

次のように基本的なWP検索フォームを変更することで、検索をカスタム投稿タイプに制限できます。

<form id="cptsearch" action="<?php echo home_url(); ?>" method="get">
    <input type="text" name="s" />
    <input type="hidden" name="post_type" value="POSTTYPENAME" />
    <input id="searchsubmit" type="submit" alt="Search" value="Search" />
</form>

カスタム投稿タイプ検索用の特殊なテンプレートを選択するには、関数ファイルにこのフィルタを追加します。

function template_chooser($template) {
    global $wp_query;
    $post_type = get_query_var('post_type');
    if( $wp_query->is_search && $post_type == 'POSTTYPENAME' ) {
    return locate_template('page_POSTTYPENAME.php');
    }
    return $template;
}
add_filter('template_include', 'template_chooser');

そしてもちろん、あなたは特別な検索結果テンプレートを作成しなければなりません:page_POSTTYPENAME.php

2
Ray Gulick