コーディング

WordPressの並び替えとEncode

  • このエントリーをはてなブックマークに追加

制作部 川崎です。

ちょっと変わった実装しようかなと思うと

たまにしか使わないから、覚えてなくて・・・どこでコードを書いたかも忘れてて・・・

結局、毎回調べてるので、ここにメモしておきます。

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」を数字として並び替えしてくれるので
望む結果が取得できます。

今回は以上です。

  • このエントリーをはてなブックマークに追加

【Webデザイナー募集!】D-Gripで一緒に働きませんか?

ただいま株式会社D-Gripシステムでは、制作部として一緒に働いてくれるWebデザイナーさんを募集しています。

実務経験がある方はもちろん、専門学校や独学で勉強された未経験の方でも歓迎です!
800サイト以上の運営実績のある会社で、プロのWEBデザイナーへの道を着実に歩んでいきませんか?

お問い合わせはコチラから↓
採用サイトへ

お電話はコチラから↓
TEL:03-5363-2191

採用サイトへ