###■目的
日付順での出力
###■現状
記事のターム「day」を全て出力しているのですが、「1月16日、1月1日、2月26日」のように順番がバラバラになってしまいます。
php
1//dayを代入 2$day = get_the_terms($mypost,'day'); 3$day_name = ''; 4$sep = "、"; 5foreach( $day as $day_all ) { 6if( $day_all !== end( $day )){ 7$day_name .= $day_all->name.$sep; 8}else{ 9$day_name .= $day_all->name; 10} 11}
###■やってみたこと
配列に入れてソートしたものをimplodeで出力。のつもりで次のように書いてみましたが、出力結果は「URL」と「日付:」だけになってしまいました。(>_<)
php
1//URLを代入 2$url = get_permalink($mypost->ID); 3 4//dayを配列に入れる 5$day = get_the_terms($mypost,'day'); 6$day_name = []; 7foreach( $day as $day_all ) { 8$day_name[] = $day_all->name; 9} 10 11//dayをソートする 12usort($day_name, 'sortbykdate'); 13function sortbykdate($arg1, $arg2) 14{ 15$date1 = date('Y/m/d', strtotime(str_replace(['年','月','日'], ['/','/'], mb_convert_kana($arg1, 'n', 'utf-8')))); 16$date2 = date('Y/m/d', strtotime(str_replace(['年','月','日'], ['/','/'], mb_convert_kana($arg2, 'n', 'utf-8')))); 17if ($date1 == $date2) { return 0; } 18return ($date1 < $date2) ? -1 : 1; 19} 20 21//代入(url)と、配列(day)を全て出力する 22$params = array( 23'status' => "{$url}".'\n'.'日付:' .implode("、", $day_name) 24); 25
きちんと「1月1日、1月16日、2月26日」という順番で出力するためにはどこを書き直せばいいかご教示頂ければ幸いです。
よろしくお願いいたします。