サポート » 使い方全般 » サイト内検索のカスタマイズ

  • 解決済 yamana

    (@yamana)


    現在、雑誌のバックナンバーを表示するページがあり
    そこでは過去1年分を表示するようにしています。

    カスタム投稿タイプ:雑誌
    ポストタイプ:mag
    タクソノミー:掲載号
    分類名:publish_no
    ターム:2018-01(など掲載年月日をスラッグに指定)

    過去1年分の表示は雑誌が1月・3月・5月・8月・10月発行なので

    
    $args = array(
            'hide_empty' => true,
            'orderby'    => 'slug',
            'order'      => 'DESC',
            'number'     => 5,
        );
        //タームリスト取得
        $terms = get_terms( $taxonomy , $args );
    

    とフィルタリングをし投稿を出力しています。

    サイト内検索にてバックナンバーに表示されているものを対象に検索をするにはどうすれば良いでしょうか。

    ちなみにサイト内検索自体はカスタム投稿タイプの雑誌のみにしか適用しなくて良いので
    下記がfunctionsに書かれています。

    
    function SearchFilter($query) {
        if ( !is_admin() && $query->is_main_query() && $query->is_search() ) {
            $query->set( 'post_type', 'mag' );
        }
    }
    add_action( 'pre_get_posts','SearchFilter' );
    
1件の返信を表示中 - 1 - 1件目 (全1件中)
  • 自己解決致しました。
    スマートなやり方かどうかわかりませんが
    function SearchFilterの記述を変更しました。

    
    function SearchFilter($query) {
    	if ( !is_admin() && $query->is_main_query() && $query->is_search() ) {
    		$today = getdate();
    		$year = $today['year'] - 1;
    		$mon = $today['mon'] - 1;
    		$query->set( 'post_type', 'doc' );
    		$query->set( 'date_query', array(
    			'after' => array(
    				'year' => $year,
    				'month' => $mon,
    			),
    		) );
    	}
    }
    add_action( 'pre_get_posts','SearchFilter' );
    
1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「サイト内検索のカスタマイズ」には新たに返信することはできません。