質問: WordPress 5.0.3で、独自テーマを開発中です。 WP_Queryのタグの検索で、 タグ名を部分一致で検索したいと思っています。 タグIDでもなく、タグのslugでもなく、タグ名(表示用の名前)に対して、部分一致で検索したいと思います。 本来の「タグ」としての使用方法ではないとは思うのですが、旧仕様との兼ね合いで必要に迫られています。 SQLで言うと、 WHERE wp_terms.name LIKE '%SEARCH_KEY%' というようなことになるのですが、 これはWP_Queryのtax_queryで実現可能でしょうか? よろしくお願いいたします。
回答: 回答がつかないようなので... WP_Query 単体では難しいと思います。 WP_Query の `tax_query` で、比較条件として使用できるのは、 > > operator (文字列) - 演算子。使用可能な値は 'IN'(デフォルト), 'NOT IN', 'AND', 'EXISTS' (4.1.0以降) と 'NOT EXISTS'(4.1.0以降) です。 > > > となっていて、`LIKE` は、含まれていません。 関数リファレンス/WP_Query 参照 SQL を使わずにということであれば、get_terms でタグの一覧を取り出して、ループで部分一致させて対象の slug を取り出して WP_Query 検索することで対応できると思うのですが、効率のよい簡便な方法は思いつかないですね。