エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


タクソノミーの一覧をショートコードで編集・ソート機能付き・wp_list_categories

      2016/03/11

カスタムタクソノミーのターム一覧の作成方法

 

カスタムタクソノミーのターム一覧をショートコードで編集・まえがき

 
カスタムタクソノミーのターム一覧をウィジェットにショートコードで編集するプログラムを「カスタムタクソノミーのターム一覧をウィジェットにショートコードで編集」で紹介しました。
 
これを書いた時にはまだローカルで実験をしている段階でしたので、これでよかったのですが、実際に運用するにあたってはタクソノミーを任意の順番に並び替える必要に迫られましたので、並び順を自由に変えられる方法を採ることにしました。
「カスタムタクソノミーのターム一覧をウィジェットにショートコードで編集」に追記をしようかと思いましたが、多様な方法があるために別記事にしました。
 
 

カスタムタクソノミーを並び替える・Category Order and Taxonomy Terms Order

 
カスタムタクソノミーを自由に並び替えて表示する前提として、カスタムタクソノミーのタームを管理側で並び順を指定する方法として、プラグインの Category Order and Taxonomy Terms Orderを利用しています。
 
この Category Order and Taxonomy Terms Orderで並び替えたカテゴリやタクソノミーのタームを一覧表示します。
Category Order and Taxonomy Terms Orderの使い方については「Category Order and Taxonomy Terms Orderでカテゴリ・タクソノミーのタームの順番を並び替える」に記事を書いていますので参照してください。
 
 

カスタムタクソノミーのターム一覧を表示するショートコード

 

カスタムタクソノミーの一覧表示するソースコード

 
カスタムタクソノミーのターム一覧をウィジェットに編集するために必要なショートコードのソースコードは以下の通りです。
これを functions.phpにコピペします。
 
functions.phpの詳しい解説ついては「WordPressの functions.phpがある場所」を参照してください。
 

add_filter('widget_text', 'do_shortcode' );

// サイドバーに指定のタクソノミーを表示するショートカット2
function shortcodeFunc ( $arg ) {
  extract ( shortcode_atts ( array (
        'text' => 'category',
  ), $arg ) ); 

  $html  = "";
  $html .= '<div id="mybox">';
  $html .= wp_list_categories ( array ( 'title_li' => '', 'taxonomy' => $text, 'show_count' => 1, 'style' => false, 'depth' => 0, 'echo' => false, 'orderby' => 'term_order', 'order' => 'ASC' ));
  $html .= '</div>';

  return $html;
}
add_shortcode('get_taxonomy_term_list', 'shortcodeFunc');

 
 
また、ウィジェットに編集するショートコードは、下記の様になります。
 

[get_taxonomy_list text=s_taxonomy]

 
引数として「text」でカスタムタクソノミーの「slug」を指定します。
「text」の指定がない場合は、「category」が指定されたものとして処理されます(カスタムタクソノミーではなく、デフォルトのカテゴリーの一覧が表示されます)。
 
 

カスタムタクソノミーの一覧・wp_list_categories()関数の解説

 
wp_list_categories()関数の解説に関しては、「カスタムタクソノミーのターム一覧をウィジェットにショートコードで編集」に詳しく書いていますので参考にしてください。
 
今回はソート順を指定するという処理を追加していますので、wp_list_categories()関数に指定する配列に下記の項目を追加しています。

  'orderby' => 'term_order'
  'order' => 'ASC'

 
このうち「term_order」が、プラグイン「Category Order and Taxonomy Terms Order」で設定される並び順の項目です。
この「term_order」をキーとして設定すれば OKです。
 
また、「Category Order and Taxonomy Terms Orderでカテゴリ・タクソノミーのタームの順番を並び替える」の設定画面の「自動ソート」という項目を「オン」にしておくと、この「term_order」をソートキーとして指定しなくても常に「term_order」でソートされた状態で取得されます。
 
逆に「オン」になっていても、orderby、order項目でソート条件を指定することで指定したソート条件でソートすることができます。
 
 

カスタムタクソノミーのタームを取得する関数

 
カテゴリやカスタムタクソノミーのターム一覧を作成する場合は、今回の記事で紹介した wp_list_categories()関数が便利です。
ですが、wp_list_categories()関数は、一覧表示するためにレイアウトを整えた形式で取得できますので、自由な編集が行いにくいのも事実です。
 
そんなときは、値だけを取得するget_categories()関数、get_terms()関数などがあります。
 
こちらの関数に関しては「get_categories、get_termsでカテゴリとタクソノミーのターム一覧の編集方法」に記事をまとめましたので参考にしてください。

 - WordPress

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

BackWPupでバックアップ・データベース保存の自動設定例

BackWPupその8。DBを毎日1回バックアップする具体的事例での説明です。

BackWPupでバックアップ・Jobの設定・保存先の情報設定

BackWPupその3。Jobのバックアップファイルの保存先の設定についての解説。

Advanced Custom Fieldsの関数の全部の使い方を調べてみた

Advanced Custom Fieldsに用意されている関数を全て調べてみた。よく使うget_field、the_field以外にも多くの関数が用意されていて、フォームを作成することも可能。

Google Code Prettifyの設定方法を解説。 Syntax Highlighterから乗換え、高速化にも最適

Google Code Prettifyでソースコードをきれいに編集する方法の解説。簡単設置とカスタマイズ設置の2つの方法を解説し、カスタマイズするポイントも解説。

アクセス5倍増!FC2、seesaaからWordPressに引越結果をレポート

FC2、seesaaからWordPressに引越しでアクセス数がどう変わるかのレポート。canonical、meta refresh設定とWordPressの集客力の検証しています。

Multi RatingでWordPressの口コミサイトを構築

口コミの評価点を投稿する機能に特化。評価点を複数設定することができ、投稿後の評価点を編集することができる数少ないプラグイン。日本語にも対応。おススメ。

FC2からWordPressに引越。インストールなど必要な全てを解説

FC2からWordPressへの引越し解説。内容は引越しメインではなくこれからWordPressでブログを構築する方向けのブログ構築の解説記事です。

Search RegexでWordPress投稿の文字列を検索・置換する使い方解説

WordPressの投稿テキストを検索、置換するプラグイン Search Regexの使い方の詳細解説です。

WordPressで使うおススメ FTP、テキストエディタ、圧縮解凍ソフト

WordPressサイトを構築、運用するために必要となるFTPソフト、テキストエディタ、圧縮解凍ソフトのオススメソフトを紹介。

WP Mail SMTPはPHP5.6、7.0系ではメール送信時にエラーが発生。その対処方法。
WP Mail SMTPはPHP5.6、7.0系ではメール送信時にエラーが発生。その対処方法。

PHPのバージョンを5.6(7系含む)にアップデートしたらプラグイン WP Mail SMTPを利用してSMTPサーバ経由して送信していたメールが送信できなくなった。その原因と対処方法を詳細解説。