サポート » その他 » カテゴリーに追加したカスタムフィールドの内容を、テキスト検索に含めたいです

  • 解決策がみつからないのでフォーラムにてご質問です。
    以下のコードをfunctions.phpに記載して、テキスト検索で表示させたい内容のコントロールをしていますが、下記コードではカテゴリーに追加したカスタムフィールドの内容が検索に含まれません。
    解決方法をご教授して頂ければ幸いですm(__)mよろしくお願いします。

    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 = ”;
    $search .= “AND post_type = ‘post'”;
    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 post_id
    FROM {$wpdb->postmeta}
    WHERE meta_value LIKE ‘{$search_word}’
    )
    ) “;
    }
    }
    }

    return $search;
    }
    add_filter(‘posts_search’,’custom_search’, 10, 2);

1件の返信を表示中 - 1 - 1件目 (全1件中)
1件の返信を表示中 - 1 - 1件目 (全1件中)
  • このトピックに返信するにはログインが必要です。