query_postsタクソノミー引数でfieldをnameで指定した場合の動作不良
-
query_postsなどで利用可能な服すタクソノミー引数で、fieldの指定をnameにした場合、日本語環境で上手く動作しません。
これは、termで指定した値が16進数の文字コードにエンコードされてしまうことが原因です。
具体的には、- WP_Tax_Query->get_sql
- WP_Tax_Query->clean_query
- WP_Tax_Query->transform_query
- sanitize_title_for_query
- sanitize_title
- sanitize_title_with_dashes
- utf8_uri_encode
と呼び出されて変換されています。
暫定的な対応方法として、sanitize_title にフックしている sanitize_title_with_dashes を remove して独自の関数をかけ直す方法が最有力と思われますが、該当部分の参照箇所が多岐に渡ること、セキュリティに関わる微妙な内容であることから、「これなら大丈夫」という上手い解決策がまだ見いだせずにいます。
WordPress tracの方はざっと検索してみましたが、これに関する報告は見つけられませんでした。
引き続き私の方でも調査しますが、可能であれば、tracへの報告と暫定的な対応策など検討いただければと思います。
1件の返信を表示中 - 1 - 1件目 (全1件中)
1件の返信を表示中 - 1 - 1件目 (全1件中)
- トピック「query_postsタクソノミー引数でfieldをnameで指定した場合の動作不良」には新たに返信することはできません。