いつもお世話になっています。
前提・実現したいこと
wordpressの記事一覧ページにて、カスタムフィールドの値で並べ替えをしたいと思っています。
(追記:WPのバージョンは5.1です)
下記サイトを参考にし、
https://magnets.jp/web_design/3124/
下記のように記載いたしました。
PHP
1<a href="<?php echo esc_url(add_query_arg(array('meta_key' =>false, 'orderby'=>'date' ), get_pagenum_link(1))); ?>">新着順</a> 2<a href="<?php echo esc_url(add_query_arg( array('meta_key' => '_reaction_buttons_0', 'orderby' => 'meta_value_num'), get_pagenum_link(1))); ?>">XXX順</a></div> 3
発生している問題・エラーメッセージ
新着順の方は期待通りの動作をするのですが、XXX順の方はURLパラメータの一部が&ではなく#038;でとエスケープされた状態となります。
全てが#038;なのではなく、一部のみです。
下記にパラメータ部分のみ抜粋いたします。
order=DESCの後ろのみ、&がエスケープされています。
恐らくこれによってですが、期待通りのソート結果とはなっていません。
(直接ブラウザのURLの#038;を&に書き換えると、期待通りの動作となるため)
?s&meta_key=_reaction_buttons_0&orderby=meta_value_num&order=DESC#038;ppp%5B0%5D=qqq
(上記ではタクソノミー部分をpppやqqqに置き換えています)
(追記:この現象が起こるのは、タクソノミーで絞込検索した後に、並べ替えをしようとしたときです。add_query_argで追加したパラメータと、もともとURLにあったタクソノミーのパラメータとの間の&がエスケープされているようです)
試したこと
esc_urlをesc_url_rawに変えてみましたが、結果は同じでした。
原因として何かお心当たりのある方、申し訳ございませんがご教示をお願いできませんでしょうか。
以上、よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。