CodexのCustom Queriesのページを参考に作ってみました。正規表現が超自信ないです。一応自分の環境では動きました。
以下のコードをお使いのテーマの functions.php に追記していただければ検索対象に記事IDが追加されるはず…。
function post_id_search_where( $where )
{
global $wpdb;
if( is_search() ) {
$where = preg_replace(
"/\(\s*$wpdb->posts\.post_title\s+LIKE\s*(\'[^\']+\')\s*\)/",
"($wpdb->posts.post_title LIKE $1) OR ($wpdb->posts.ID LIKE $1)", $where );
}
return $where;
}
add_filter('posts_where', 'post_id_search_where' );
hissyさん
試してみたところ、望んだ通りに動作しました!
どうもありがとうございました!
解決済みですが、jim912さんに指摘をいただきましてちょこっと修正しました。
function post_id_search_where( $where, $obj )
{
global $wpdb;
if( $obj->is_search ) {
$where = preg_replace(
"/\(\s*$wpdb->posts\.post_title\s+LIKE\s*(\'[^\']+\')\s*\)/",
"($wpdb->posts.post_title LIKE $1) OR ($wpdb->posts.ID LIKE $1)", $where );
}
return $where;
}
add_filter('posts_where', 'post_id_search_where', 10, 2 );