タクソノミーの一覧をショートコードで編集・ソート機能付き・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がある場所」を参照してください。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
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'); |
また、ウィジェットに編集するショートコードは、下記の様になります。
|
1 |
[get_taxonomy_list text=s_taxonomy] |
引数として「text」でカスタムタクソノミーの「slug」を指定します。
「text」の指定がない場合は、「category」が指定されたものとして処理されます(カスタムタクソノミーではなく、デフォルトのカテゴリーの一覧が表示されます)。
カスタムタクソノミーの一覧・wp_list_categories()関数の解説
wp_list_categories()関数の解説に関しては、「カスタムタクソノミーのターム一覧をウィジェットにショートコードで編集」に詳しく書いていますので参考にしてください。
今回はソート順を指定するという処理を追加していますので、wp_list_categories()関数に指定する配列に下記の項目を追加しています。
|
1 2 |
'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でカテゴリとタクソノミーのターム一覧の編集方法」に記事をまとめましたので参考にしてください。
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
Author hReviewでWordPressに構造化されたレビューサイトを構築
レビューサイトを構築するためのプラグイン。レビューの入力とレビュー対象のアイテムの情報を構造化データにするHTMLを編集する機能を提供します。
-
-
ロリポップでWordPress+Basic認証で不具合発生!回避方法解説
ロリポップサーバでWordPressを使いBasic認証を設定する際には注意しないとWordPressが動かなくなる場合も!その回避方法を解説します。
-
-
WordPressで WPtouchを入れたら「このウェブページにはリダイレクト ループが含まれています」と表示されてページが表示されなくなった
WPtouchを入れたら「このウェブページにはリダイレクト ループが含まれています」のエラーでページが表示されない。その解決法の解説です。
-
-
WordPressのフォームプラグイン「MW WP FORM」でメールが送信できない不具合の対応方法
WordPressでメールフォームと言えば MW WP Form!そのMW WP Formでフォームを作成したものの、エラーでメールが送信できない!その原因と対処方法を解説。エラーが発生する意外な盲点もある。
-
-
WordPressで WPtouchを入れてモバイルテーマを「OFF」にしたら元に戻れなくなった
WPtouchを入れてモバイルテーマを「OFF」にしたら元に戻れなくなった。これは「wp_footer」の設定に問題があるからだった。
-
-
Advanced Custom Fieldsのカスタムフィールドの登録上限が max_input_varsに影響する問題の対処方法
Advanced custom Fieldsには登録できるフィールド数に上限があります。php.iniのmax_input_varsによる制限ですが、フィールドグループを分割することで解決できます。
-
-
30分でWordPressを引越し・他のサーバに引越しや開発環境の構築手順
WordPressを他のサーバに引っ越しするとき、テスト環境を作るときなどの作業手順をまとめました。プラグインを使う方法もありますが手作業でも簡単です。
-
-
WordPressのバージョンアップをしたら「the_content」でコンテンツが表示されなくなった
「the_content」でコンテンツが表示されないのは仕様が変更されたためでプログラムの修正が必要です。
-
-
WordPressのアップグレードの英語版と日本語版の公開のタイムラグは?
WordPressのアップグレードの英語版と日本語版の公開のタイムラグについて説明しています。
-
-
Edit Author Slugで WordPressの不正ログイン・不正アクセスを回避
WordPressのセキュリティ強化に Edit Author Slugを使う理由と設定方法の解説をしています。