前提・実現したいこと
wordpressのWP_Queryを使用して、カスタム投稿タイプで投稿した記事のタイトルに対して
部分一致検索をしたいと思っています。
(簡単な検索システムです)
色々なサイトを調べたところ、
WP_Queryに渡す配列に
's' => $word
又は
'title' => $word
と記載することで、実装できるとの事で試してみました。
実際にどのようなqueryがはしっているのかを見たかったので
WP_Queryを実行した直後に
echo $my_query->request;
を入れ確認したところ意図しない結果がでました。
該当のソースコード
$condition = array(
'post_type' => 'cus_post', //表示させたい投稿タイプ
'title' => $word, // 検索ワード
'post_status' => 'publish', //投稿ステータスの指定
'posts_per_page' => 12, //表示させたい件数
'orderby' => 'post_date',
'order' => 'DESC'
);
$my_query = new WP_Query($condition);
echo $my_query->request;
試したこと
■パターン1
's' => $word
で試した場合
SELECT * FROM wp_posts WHERE 1=2
という結果が返ってきました。
■パターン2
'title' => $word
で試した場合
SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_title = 'テスト' AND wp_posts.post_type = 'cus_post' AND ((wp_posts.post_status = 'publish')) ORDER BY wp_posts.post_date DESC LIMIT 0, 12
という結果が返ってきました。
パターン1の方は
WHERE 1=2
という条件文が生成されていました。
パターン2の方は
うまくいっていそうに見えたのですが、完全一致で抽出されました。実装したいのは部分一致です。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
PHP7.2
MySQL 5.7
WordPress 4.8.7

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。