- 📋
- 開発
WordPressでカスタムフィールドの全文一致、中間一致、前方一致、後方一致検索
作成日:
2020年12月30日
	タイトル通り。
WordPressのmeta_queryを用いてカスタムフィールドの値を検索する際に、全文一致、中間一致、前方一致、後方一致を実装する方法です。
コード
PHP 
/**
 * $meta_key:   検索したいカスタムフィールドキー.
 * $meta_value:検索ワード.
 */
// 全文検索.
array(
	'meta_query' => array(
		'relation' => 'AND',
		array(
			'key'     => $meta_key,
			'value'   => $meta_value,
			'compare' => '='
		),
	),
);
// 中間一致.
array(
	'meta_query' => array(
		'relation' => 'AND',
		array(
			'key'     => $meta_key,
			'value'   => $meta_value,
			'compare' => 'LIKE'
		),
	),
);
// 前方一致.
array(
	'meta_query' => array(
		'relation' => 'AND',
		array(
			'key'     => $meta_key,
			'value'   => '^' . preg_quote( $meta_value ),
			'compare' => 'REGEXP'
		),
	),
);
// 後方一致.
array(
	'meta_query' => array(
		'relation' => 'AND',
		array(
			'key'     => $meta_key,
			'value'   => preg_quote( $meta_value ) . '$',
			'compare' => 'REGEXP'
		),
	),
);全文一致はcompare => '='で。
中間一致はcompare => 'LIKE'で。
前方一致と後方一致は正規表現を使ってcompare => 'REGEXP'で。
その際、検索ワードを一応preg_quoteしておいてそれぞれ^と$を追加。
多分これで大丈夫なのではなかろうかと。

物草 灸太郎
WordPressでホームページを制作しつつ、休日は畑を耕したりDIYを楽しんでいます。
関連投稿
Loading...
 
コメントをどうぞ