【WordPress】Search Regex でカスタムフィールド検索のバグを修正


関連記事はこちら Search Regex でカスタム投稿タイプを対応させる方法

 

カスタムフィールドを対象に一括置換しようとしたら、なんか変!
検索に引っかからないのである。。。

 

で、プラグインを調査。

犯人はこいつ。post_meta.php

plugins/search-regex/searches/ の中に入ってます。

 

 

修正ファイル:/plugins/search-regex/searches/post_meta.php

//NG
//		$metas = $wpdb->get_results ($wpdb->prepare( "SELECT {$wpdb->postmeta}.meta_id AS meta_id, {$wpdb->postmeta}.meta_value AS meta_value, {$wpdb->postmeta}.post_id AS post_id, {$wpdb->posts}.post_title AS title FROM {$wpdb->postmeta} LEFT JOIN {$wpdb->posts} ON {$wpdb->postmeta}.post_id = {$wpdb->posts}.ID ORDER BY meta_value $orderby LIMIT %d,%d", $offset,$limit ) );

  ↓

//OK
		$metas = $wpdb->get_results ($wpdb->prepare( "SELECT {$wpdb->postmeta}.meta_id AS meta_id, {$wpdb->postmeta}.meta_value AS meta_value, {$wpdb->postmeta}.post_id AS post_id, {$wpdb->posts}.post_title AS title FROM {$wpdb->postmeta} LEFT JOIN {$wpdb->posts} ON {$wpdb->postmeta}.post_id = {$wpdb->posts}.ID ORDER BY meta_value $orderby ") );

 

修正箇所:

最後のLIMITが変だったので、ごっそり削除した。

LIMIT %d,%d", $offset,$limit」を削除。

 

これで対象が引っかかるようになりました。