カスタムタクソノミーのターム一覧をウィジェットにショートコードで編集
2017/03/11
カスタムタクソノミーのターム一覧をウィジェットに表示
カスタムタクソノミーのターム一覧を表示するショートコード
カスタムタクソノミーのターム一覧をウィジェットに編集するために必要なショートコードのソースコードは以下の通りです。
これを編集する場所は、functions.phpです。
functions.phpの詳しい解説ついては「WordPressの functions.phpがある場所」を参照してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// タクソノミーのターム一覧を表示するショートコード add_filter('widget_text', 'do_shortcode' ); function shortcode1Func ( $arg ) { extract ( shortcode_atts ( array ( 'text' => 's_taxonomy', ), $arg ) ); $html .= '<div id="mybox">'; $html .= wp_list_categories ( array ( 'title_li' => '', 'taxonomy' => $text, 'show_count' => 1, 'style' => false, 'depth' => 0, 'echo' => false )); $html .= '</div>'; return $html; } add_shortcode('get_taxonomy_list', 'shortcode1Func'); |
また、ウィジェットに編集するショートコードは、下記の様になります。
1 |
[get_taxonomy_list text=s_taxonomy] |
タクソノミーのターム一覧表示の解説
タクソノミーのターム一覧の「wp_list_categories()」関数
タクソノミーのターム一覧を取得する関数は 10行目の「wp_list_categories()」です。
カスタムタクソノミーの一覧を取得する処理そのものは、10行目の「wp_list_categories()」関数だけの理解で足りるのですが、上記のサンプルコードのように「wp_list_categories()」関数に対して、配列で条件を指定します。
title_li
タイトルを編集するか、しないかを指定できます。
デフォルトは「’title_li’ => ‘カテゴリー’」です。
「’title_li’ => ‘あいうえお’」の様にタイトルを指定すると、指定した文字列をタイトルとして編集することができます。
タイトルが必要ない場合は「’title_li’ => ”」を指定します。
style
カテゴリリストを「ulタグ」で囲むか、否かを指定します。
デフォルトは「’style’ => ‘list’」で「ulタグ」で囲む設定になっています。
これを設定したくない場合は「’style’ => ‘none’」を指定します。
taxonomy
取得するタクソノミーの slugを指定します。
上記のサンプルは、「s_taxonomy」という slugを設定しているタクソノミーに属するタームの一覧を取得することになります。
デフォルトは「category」で、指定しない場合は「カテゴリー」として登録されているタームの一覧を取得します。
show_count
各カテゴリ(ターム)のリンクの右に、そのカテゴリ(ターム)に属するの投稿数を表示するか、しないかを指定します。
デフォルトは「0(false)」の非表示。表示したい場合は「’show_count’ => 1」を指定します。
hide_empty
各カテゴリ(ターム)に属する投稿が 0件の場合にそのカテゴリを編集するか、否かを指定します。
デフォルトは「1(true)」で 0件の場合は非表示になる設定です。0件でもカテゴリを編集したい場合は「’hide_empty’ => 0」を指定します。
echo
取得した結果をその場所で出力するか、変数に代入するかを指定します。
デフォルトは「1(true)」で出力まで行います。変数に代入したい場合は「’echo’ => false」を指定します。
テンプレートに直接記述する場合はデフォルトのままで問題ありませんが、ショートコードで処理を組み込む場合は「’echo’ => false」を指定しないと、想定している場所とは違う場所に出力されてしまします。
depth
カテゴリ(ターム)の階層のどのレベルまでリストに出力するかを指定します。
デフォルトは「0」ですべてのカテゴリを取得できます。
「1」は最上位のカテゴリのみ。
「2」「3」...は、2階層目、3階層目までの指定になります。
「-1」はすべてのカテゴリを、インデントなしの形式で出力します。
number
表示するカテゴリ(ターム)の上限個数を指定します。
デフォルトは無制限です。
hierarchical
サブカテゴリを親階層より段をずらして編集するか、否かを指定します。
デフォルトは「1(true)」の入れ子になる表示です。「0(false)」を指定すると親子関係なく同じレベルで並びます。
ただし、実際の見え方は CSSを含めた設定に影響を受けます。
orderby
カテゴリ(ターム)の並び順の項目を指定します。
デフォルトは「name」です。
指定できる値は以下の通りです。
ID:カテゴリID(タームID)
name:カテゴリ名のアルファベット順(初期値)
slug:スラグ
count:カテゴリ内の投稿数
term_group:タームのグループ順
order
前項の「orderby」と一緒に利用し、カテゴリ(ターム)の並び順を指定します。
「ASC(昇順)」が初期値ですが、「DESC(降順)」も指定可能です。
show_option_none
表示するカテゴリ(ターム)がない場合に表示する代替のテキストを指定します。
デフォルトは「カテゴリーなし」です。
use_desc_for_title
カテゴリ(ターム)のリンクタグ(aタグ)に「title」属性を追加するか、否かを指定します。
デフォルトは「1(true)」です。
child_of
このパラメータで指定したカテゴリIDの子カテゴリのみ表示します。
exclude
指定したカテゴリをリストから除外する場合に指定します。
include
指定したカテゴリのみリストに表示する場合に指定します。
その他、feed、 show_option_all、 feed_type、 feed_image、 exclude_tree、 current_category、 pad_counts、 walkerのパラメータがありますが、詳しくはオフィシャルサイトをご覧ください。
https://wpdocs.osdn.jp/テンプレートタグ/wp_list_categories
タクソノミーの slugの指定
functions.phpに記述する 6行目の「s_taxonomy」と、ショートコードの引数として指定する「text=s_taxonomy」の「s_taxonomy」は、一覧させるタクソノミーの slugです。
作成したタクソノミーの slugを指定してください。
ショートコードの基本的な構成については、下記の記事に詳しく解説をしていますので参照してください。
WordPress投稿にPHPを記述するショートコードの使い方add_shortcode
ショートコードをウィジェットで使うための add_filter()
functions.phpに記述する 2行目の「add_filter()」関数は、ショートコードをウィジェットで使うための関数です。
この「add_filter()」関数の記述がないと投稿中では使えるショートコードも、ウィジェットでは使えません。
ウィジェットで使う場合にはこの「add_filter()」関数を忘れずに記述しておきましょう。
詳しくは、「WordPressのウィジェットでショートコードを使う方法add_filter」にも書いていますので参照してください。
一覧ページを記述するファイル
前項まででウィジェットにカスタムタクソノミーのターム一覧を表示する処理は完了なのですが、タクソノミーの各タームをクリックして各記事の一覧ページがどこに編集されるかの解説もしておきます。
基本的には、下記になります。
/{WordPressのルート}/wp-content/themes/{テーマ}/archive.php
これはデフォルトで存在する一覧ページで、特に指定しなければ全ての一覧ページはこのファイルをテンプレートとして一覧ページを表示します。
ですが、WordPressには簡単な設定でテンプレートを分けていく仕組みがありますのでご紹介しておきます。
下記の様に「category-****.php」「taxonomy-****.php」といったファイル名を付けたファイルを用意すると、下記の条件に従ってそのテンプレートファイルが使われます。
「archive.php」をコピーしてテンプレートファイルを作成していくといいでしょう。
- category-{slug}.php 特定のカテゴリだけのテンプレート
- category-{6}.php 1.同様特定のカテゴリ。こちらは IDで指定
- category.php カテゴリ共通のテンプレート
- archive.php カテゴリ、アーカイブ一覧など一覧ページ共通
- index.php すべての共通テンプレート
- taxonomy-{slug}-{term}.php 特定のタクソノミーの中の特定のタームだけのテンプレート
- taxonomy-{slug}.php 特定のタクソノミーだけのテンプレート
- taxonomy.php タクソノミー共通のテンプレート
- archive.php タクソノミー、アーカイブ一覧など一覧ページ共通
- index.php すべての共通テンプレート
※それぞれ上の方が優先的に適用されます。
カスタムタクソノミーが正しく動かない場合の対処方法
カスタムタクソノミーの一覧ページや、タクソノミーの中のタームの一覧ページなどが正しく表示されない不具合が発生する場合が多々あります。
原因は、パーマリンクの設定が反映されていないからです。
不具合の解消方法は、管理画面の「設定」-「パーマリンク設定」の画面で空更新(特に設定を変更せずに「更新を保存」をクリックすること)を実施することです。
パーマリンクの設定が「デフォルト」のままであれば問題は起こらないようですが、「デフォルト」以外の設定にしている場合は、カスタムタクソノミー、および、カスタム投稿の設定を変更した場合は、リダイレクトの処理に変更を反映させるために「パーマリンク設定」を空更新をする必要があるようです。
カスタム投稿とカスタムタクソノミーの関連記事
カスタムタクソノミーを設定するプラグインとして「Custom Post Type UI」がオススメです。
下記の記事では「Custom Post Type UI」の設定方法の解説と、そもそもカスタムタクソノミーの設定で行える項目の設定内容も解説をしています。
Custom Post Type UIでカスタムタクソノミーを設定し編集する方法解説
また、同じ「Custom Post Type UI」ではカスタム投稿も設定できるようになっています。
下記の記事では、カスタム投稿の設定方法とあわせて、カスタム投稿で設定できる項目の詳細解説をしています。
WordPressのカスタムフィールド、カスタム投稿、カスタムタクソノミーとは?
さらに、下記の記事では、そもそもカスタムタクソノミー、カスタム投稿、カスタムフィールドとはどういう使い方をするものなのか、について解説していますのであわせてご覧下さい。
Custom Post Type UIでカスタム投稿を設定し編集する方法解説
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
Theme My Loginの旧バージョン(V6.4.17)のダウンロード場所の紹介
Theme My Loginのバージョンアップ(V6.4系→V7.0系)で不具合が発生!問題を解消するには元バージョンにダウングレードだ!そんな時に必要となるV6.4系をダウンロードできるURLを紹介!
-
Theme My Loginの日本語翻訳ファイル Ver.6.4.5対応
Theme My Loginの日本語翻訳ファイルのダウンロードページ。WordPressの翻訳ファイルの設置方法、注意点、翻訳ファイルの作成方法なども解説。
-
WordPressのカテゴリ単位・フォルダ単位でBasic認証を設定する方法
カテゴリ単位でBasic認証を設定する方法の解説。WordPressのカテゴリはフォルダの実態がないですが、実は簡単な方法でプラグインも使わずにBasic認証を設置できます。
-
WP Basic AuthなどWordPressにBasic認証を設定するプラグインのまとめ
WordPressにBasic認証を設定する方法のまとめ。プラグインを使う方法と.htaccessで設定する方法を紹介。公開側、ログインページをそれぞれ設定できます。
-
AddQuicktagを使って WordPressの投稿を楽にする
投稿時にタグの入力を楽にしてくれるプラグイン「AddQuicktag」の使い方の説明です。クリック一つでタグを編集できます。
-
BackWPupでバックアップ・リストア(復元)の具体的手順
BackWPupその9。バックアップファイルからのリストア(復元)の手順です。
-
AdminerはWordPressのデータベース管理プラグインの決定版!
データベース管理プラグインはAdminerがあれば他に必要ありません。なぜならDB管理ツールAdminerと同じものをプラグインとして提供しているからです。
-
WordPressの管理画面と公開画面を別のドメインに分離して運用する方法
管理画面と公開画面のURLを違うドメインで設定・運用する方法を解説。管理画面と公開画面の場所を分離することでセキュリティ面でのメリットが大きくなります。
-
WP-PostRatingsでWordPressに自由度が高い口コミサイトを構築
口コミの評価点を投稿する機能に特化したプラグインで、多様なイメージと投稿方法が用意されていてサイトにあったイメージを選択できます。
-
WordPressで特定のURL、ページ、ファイル単位でBasic認証を設定する方法
WordPressはURLはmod_rewriteにより疑似的に作られていますが、特定のページ、特定のURL、ファイル単位でBasic認証を設定する方法を解説します。ツールも紹介。