サポート » 使い方全般 » フォームのカスタムタクソノミーによる絞込み検索について

  • 解決済 momokichi

    (@momokichi)


    以下の内容で、検索フォームを作成しています。

    ・検索対象はカスタム投稿タイプ「shop」のみとする
    ・カスタムタクソノミー「shop_area」のタームが、セレクトボックスのvalueに等しいものだけを検索結果に表示させる

    ●functions.php

    add_action( 'pre_get_posts', 'my_pre_get_posts' );
    function my_pre_get_posts( $query ) {
    	$query->set( 'posts_per_page',12);
    	$query->set('s', $_GET['s']);
    	$query->set('post_type',array('shop'));
    	if(isset($_GET['area'])) {
    		$query->set( 'tax_query',array(
    			array(
    				'taxonomy' => 'shop_area',
    				'terms' => array($_GET['area']),
    				'field' => 'slug',
    			)
    		));
    	}
    }

    ●検索フォーム

    <form method="get" id="searchform" action="<?php bloginfo('url'); ?>">
    <label for="s" class="assistive-text">検索</label>
    <input type="text" name="s" id="s" placeholder="検索" value="<?php echo esc_attr( get_search_query() ); ?>" />
    <select name="area">
    <option disabled selected>選択してください</option>
    <option value="osaka">大阪</option>
    <option value="kyoto">京都</option>
    ・
    ・
    ・
    (以下略)
    </select>
    <input type="submit" value="検索" />
    </form>

    上記設定では、セレクトボックス未選択の状態だと、キーワードに対応する検索結果が表示されるのですが、
    セレクトボックスで選択を行った状態だと、検索結果が0件になってしまいます。

    どのように修正すれば期待通りの動きとなるでしょうか。
    どなたかアドバイスを頂けると幸いです。
    よろしくお願いします。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック投稿者 momokichi

    (@momokichi)

    すみません。自己解決しました。
    記事の登録件数を増やすとなぜか解決しました。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「フォームのカスタムタクソノミーによる絞込み検索について」には新たに返信することはできません。