株式会社AZU (アズ) | 長野市のWEBシステム・業務システム・WEBサイト制作会社

+ MENU

投稿検索に検索条件を追加したい

投稿一覧ページ、アーカイブページなどを表示するとき、
投稿検索に検索条件を追加したい。

例:
タクソノミーの○○のみ
カスタムフィールドの××のみ
全件表示したい
など

functions.php
に以下を追加する。


//WP_Query:クエリ変数オブジェクトの生成後、実際にクエリが実行される前に呼び出されます。
add_action('pre_get_posts', 'custom_pre_get_posts');

function custom_pre_get_posts($wp_query) {

	//クエリを変更させたくない場合、処理を終了する。
	//管理画面の場合
	if (is_admin()) {
		return;
	}


	//タクソノミーをクエリに追加する。
	$tax_query = array();

	$tax_query[] = array(
		'taxonomy' => 'xxx',
		'field' => 'slug',
		'terms' => 'aaa'
	);
	$tax_query[] = array(
		'taxonomy' => 'yyy',
		'field' => 'slug',
		'terms' => 'bbb'
	);

	$wp_query->set('tax_query', $tax_query);


	//カスタムフィールドをクエリに追加する。
	$meta_query = array();

	$sub_meta_query = array();
	$sub_meta_query['relation'] = 'OR';
	$sub_meta_query[] = array(
		'key' => 'ttt',
		'value' => 'vvv',
	);
	$sub_meta_query[] = array(
		'key' => 'sss',
		'value' => 'uuu',
	);

	$meta_query[] = $sub_meta_query;

	$wp_query->set('meta_query', $meta_query);


	//その他をクエリに追加する。
	$wp_query->set('mmm', 'nnn');

}

[2022/02/17]
このエントリーをはてなブックマークに追加