制作部 川崎です。
ちょっと変わった実装しようかなと思うと
たまにしか使わないから、覚えてなくて・・・どこでコードを書いたかも忘れてて・・・
結局、毎回調べてるので、ここにメモしておきます。
1.ajax使って、PHP呼び出す時のEncodeとDecode
JavascriptのEncodeは3種類
・escape(str);
・encodeURI(str);
・encodeURIComponent(str);
PHPのDecodeは2種類あります。
・urldecode($str);
・rawurldecode($str);
相性の良い組み合わせは、
呼び出す時にJavascriptで
encodeURIComponent(str)
Encodeして
PHPで
rawurldecode($str);
Decodeする
これで、JavascriptからPHPにデータが渡せます。
2.Wordpressで複数項目でソートする時
※Wordpress4.0以降(今なら、ほとんどのサイトが該当すると思います)では以下の構文で実装できます。
$args = array();
$args[‘post_type’] = ‘post’;
$args[‘posts_per_page’] = -1;
$args[‘paged’] = 1;
$args[‘orderby’] = array( ‘display_cnt’ => ‘DESC’, ‘title’ => ‘ASC’ );
これで複数項目の並び替えが実装出来ます。
ここまでは、結構簡単に参考資料が見つけられます。
でも・・・このままだと、文字列として並び替えを行ってしまうので
数字項目で並び替えたい時に、よろしくない結果が帰ってきます。
(99 → 9 → 88 → 8 → 7 → 65 みたいな感じで並んじゃいます。)
そんな時は、
$args[‘orderby’] = array( ‘meta_value_num’ => ‘DESC’, ‘title’ => ‘ASC’ );
$args[‘meta_key’] = ‘display_cnt’;
これで、「display_cnt」を数字として並び替えしてくれるので
望む結果が取得できます。
今回は以上です。