RSS

カスタムタクソノミーのタームの並び順

26 10月

会社の仕事で使ってるWordpress。1週間悩み続けていた 案件が今しがた解決!
忘れてはいけないので覚書。

<?php echo get_the_term_list($post->ID,’●●●’,”,’・’); ?>

をつかって出力していた カスタム投稿の 記事ごとに含まれる タームの一覧。
出力結果が タームの名前の順で、数字→アルファベット→ひらがな→カタカナ→漢字 になってしまうらしい。

わたしが扱っていたものの場合は 数字→アルファベット がないから ひらがなで一番最初にくるのが「その他」 なーんて もう変な感じ。。。 何とかせねばー・・・ と 色々やっては 結果が真っ白気持ち悪いになるを繰り返しておりました。

解決に至った方法
Custom Taxonomy Order というプラグインをインストール。
①表示したい順に タームをドラッグ&ドロップで並べ替え。
②子テーマに funciton.php を作って、必要なコード ↓だけを追記。
(親のテーマのfunction.phpをそのままコピーして追記したら これまた真っ白になってびっくり気持ち悪い
funciton.php は 上書きされるんじゃないのねぇ)

<?php
// functions.php に追記
function terms($a, $b){
 
    if ( intval($a->term_order) == intval($b->term_order)) {
        return 0;
    }
    return (intval($a->term_order) < intval($b->term_order)) ? -1 : 1;
 
}
 
function terms_sort($terms, $object_ids, $taxonomies, $args){
    if(!is_admin()){
        usort($terms , "terms");
    }
    return $terms;
}
add_filter(‘wp_get_object_terms’,’terms_sort’,99,4);
?>

参考にさせていただいた記事
http://ht79.info/2013/05/23/how-to-wordpress-post-relation-terms-list-sort/

スペシャルサンクス!!本当にありがとうございました。
これで今日はゆっくり眠れる!と思う。

広告
 
コメントする

投稿者: : 2014年10月26日 投稿先 wordpress

 

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

 
%d人のブロガーが「いいね」をつけました。