【WordPress】サイト内検索でカテゴリーとタグも検索で引っかかるようにする方法
今回は、WordPressのサイト内検索でカテゴリーとタグも検索で引っかかるようにする方法について紹介します。
【WordPress】サイト内検索でカテゴリーとタグも検索で引っかかるようにする方法
WordPressのサイト内検索は、デフォルトではタイトルや本文しか検索対象になりません。
カテゴリーとタグでも検索できるようにするには、結論以下のコードをfunctions.phpに記述しましょう!
function custom_search($search, $wp_query) {
global $wpdb;
if (!$wp_query->is_search)
return $search;
if (!isset($wp_query->query_vars))
return $search;
$search_words = explode(' ', isset($wp_query->query_vars['s']) ? $wp_query->query_vars['s'] : '');
if ( count($search_words) > 0 ) {
$search = '';
foreach ( $search_words as $word ) {
if ( !empty($word) ) {
$search_word = $wpdb->escape("%{$word}%");
$search .= " AND (
{$wpdb->posts}.post_title LIKE '{$search_word}'
OR {$wpdb->posts}.post_content LIKE '{$search_word}'
OR {$wpdb->posts}.ID IN (
SELECT distinct r.object_id
FROM {$wpdb->term_relationships} AS r
INNER JOIN {$wpdb->term_taxonomy} AS tt ON r.term_taxonomy_id = tt.term_taxonomy_id
INNER JOIN {$wpdb->terms} AS t ON tt.term_id = t.term_id
WHERE t.name LIKE '{$search_word}'
OR t.slug LIKE '{$search_word}'
OR tt.description LIKE '{$search_word}'
)
OR {$wpdb->posts}.ID IN (
SELECT distinct p.post_id
FROM {$wpdb->postmeta} AS p
WHERE p.meta_value LIKE '{$search_word}'
)
) ";
}
}
}
return $search;
}
add_filter('posts_search','custom_search', 10, 2);
DOWNLOAD
ブログ用WordPressテーマを無料配布中
実務で使える構成・設計をベースにしたテーマです。
すぐにブログ運用を始めたい方はこちらからダウンロードできます。
Webサイトの集客や導線設計でお悩みではありませんか?
当社では、データ分析(GA4・検索データ)をもとに、
成果につながるWeb制作・改善をご提案しています。
課題の整理からでも大丈夫ですので、まずはお気軽にご相談ください。
無料で相談する



