ワードプレスで特定のカスタムフィールドを検索に含む方法 を見ていきましょう。

ワードプレスの検索システム

ワードプレスの検索システムは主に、タイトルとコンテンツの本文を検索します。
カスタムフィールドの値を検索条件に含む場合テーマのFunctions.phpもしくは制作されているプラグインなどにプログラムコードを追加する必要があります。

ワードプレスの個別の投稿のカスタムフィールドの値を検索で考慮するようにする

ワードプレスのadd_filterを利用し、posts_join の値にカスタムフィールドを考慮するように追加する処理を追加します。

カスタムフィールドが一つの場合

function add_search_metadata_join( $join ) {
    global $wpdb;
    $join .= " LEFT JOIN $wpdb->postmeta AS mkey ON ($wpdb->posts.ID = mkey.post_id)  AND  mkey.meta_key = 'カスタムフィールドのメタキー' "; 
    return $join;
}
add_filter( 'posts_join', 'add_search_metadata_join' );

※カスタムフィールドのメタキー の部分を書き換えてください

カスタムフィールドが2つの場合

function add_search_metadata_join( $join ) {
    global $wpdb;
    $join .= " LEFT JOIN $wpdb->postmeta AS mkey ON ($wpdb->posts.ID = mkey.post_id)  AND (mkey.meta_key = 'カスタムフィールドのメタキー1')  or mkey.meta_key = 'カスタムフィールドのメタキー2')"; 
    return $join;
}
add_filter( 'posts_join', 'add_search_metadata_join' );

となります。お試しくださいませ

WordPress ワードプレスの検索のカスタマイズのご依頼・ご相談はWPドクターまでお気軽にお送りください