こんにちは
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>
ありがとうございます。試してみたところ問題なく動作しておりました。
ただ画像ファイル名だけでなく、htmlタグに付けているid名やclass名も検索対象となっておりますので
idやclassを検索対象外とする。
もしくは特定のキーワード(決められたid名やclass名)を検索対象外とできれば完璧なのですが、
そのようなことは可能なのでしょうか?
どなたかご教授いただけると幸いでございます。
html属性(id,class)は検索対象外になっていませんか?
お返事遅くなり恐縮でございます。
html属性は検索対象外となっておりました。失礼いたしました。
画像ファイル名やパスが検索対象外となりOKなのですが、
altやtitle属性は検索対象にできないかと思っております。
このようなことは実現可能なのでしょうか?
ご教授いただけると大変助かります。