• デフォルトの検索ウィジェットを使ってサイト内検索を使っているのですが、
    投稿した画像のファイル名やパスまで検索対象になってしまいます。
    これを検索対象から外すことは可能でしょうか?

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • こんにちは

    http://tenman.info/labo/snip/archives/9215

    でも、MYSQLの正規表現を書いたことがないので、ちょっと自信ありません

    詳しい方、間違いがあったら、教えてください。

    functions.php

    
    add_filter('posts_where', 'raindrops_exclude_html_search' );
    
    function raindrops_exclude_html_search($where) {
        if( is_search() ) {
            global $wpdb;
            $query = get_search_query();
            $query = $wpdb->esc_like( $query );
    
            $where .=" AND {$wpdb->posts}.post_content NOT REGEXP  '\<{1}[^\>]*$query*[^\>]*\>{1}' ";
        }
        return $where;
    }
    

    searchform.php

    
        <form method="get" name="searchform" id="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>">
            <div class="searchform">
                <label class="screen-reader-text" for="s"><?php esc_attr_e('Search for:', 'raindrops');?></label>
                <input type="text" value="<?php the_search_query(); ?>" pattern="^[^(<|>)]+$" title="<?php esc_attr_e( 'must not contain html tags', 'raindrops' ); ?>" placeholder="<?php esc_attr_e( 'Search', 'raindrops' ); ?>" name="s" id="s"  />
                <input type="submit" id="searchsubmit" value="<?php esc_attr_e( 'Search', 'raindrops' ); ?>" />
            </div>
        </form>
    
    • この返信は7年、 8ヶ月前にnobitaが編集しました。
    トピック投稿者 doughnutsboy

    (@doughnutsboy)

    ありがとうございます。試してみたところ問題なく動作しておりました。

    ただ画像ファイル名だけでなく、htmlタグに付けているid名やclass名も検索対象となっておりますので
    idやclassを検索対象外とする。
    もしくは特定のキーワード(決められたid名やclass名)を検索対象外とできれば完璧なのですが、
    そのようなことは可能なのでしょうか?

    どなたかご教授いただけると幸いでございます。

    html属性(id,class)は検索対象外になっていませんか?

    トピック投稿者 doughnutsboy

    (@doughnutsboy)

    お返事遅くなり恐縮でございます。
    html属性は検索対象外となっておりました。失礼いたしました。

    画像ファイル名やパスが検索対象外となりOKなのですが、
    altやtitle属性は検索対象にできないかと思っております。

    このようなことは実現可能なのでしょうか?
    ご教授いただけると大変助かります。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「ウィジェットの検索で画像ファイル名を対象外にしたい」には新たに返信することはできません。