エス技研

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


カスタムタクソノミーのターム一覧をウィジェットにショートコードで編集

      2017/03/11

カスタムタクソノミーのターム一覧をウィジェットに表示

 

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

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

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

 
 

タクソノミーのターム一覧表示の解説

 

タクソノミーのターム一覧の「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
指定したカテゴリのみリストに表示する場合に指定します。
 
 
その他、feedshow_option_allfeed_typefeed_imageexclude_treecurrent_categorypad_countswalkerのパラメータがありますが、詳しくはオフィシャルサイトをご覧ください。
 
 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」をコピーしてテンプレートファイルを作成していくといいでしょう。
 

  1. category-{slug}.php 特定のカテゴリだけのテンプレート
  2. category-{6}.php   1.同様特定のカテゴリ。こちらは IDで指定
  3. category.php    カテゴリ共通のテンプレート
  4. archive.php    カテゴリ、アーカイブ一覧など一覧ページ共通
  5. index.php     すべての共通テンプレート

 

  1. taxonomy-{slug}-{term}.php 特定のタクソノミーの中の特定のタームだけのテンプレート
  2. taxonomy-{slug}.php 特定のタクソノミーだけのテンプレート
  3. taxonomy.php    タクソノミー共通のテンプレート
  4. archive.php    タクソノミー、アーカイブ一覧など一覧ページ共通
  5. index.php     すべての共通テンプレート

 
  ※それぞれ上の方が優先的に適用されます。
 
 

カスタムタクソノミーが正しく動かない場合の対処方法

 
カスタムタクソノミーの一覧ページや、タクソノミーの中のタームの一覧ページなどが正しく表示されない不具合が発生する場合が多々あります。
 
原因は、パーマリンクの設定が反映されていないからです。
 
不具合の解消方法は、管理画面の「設定」-「パーマリンク設定」の画面で空更新(特に設定を変更せずに「更新を保存」をクリックすること)を実施することです。
 
パーマリンクの設定が「デフォルト」のままであれば問題は起こらないようですが、「デフォルト」以外の設定にしている場合は、カスタムタクソノミー、および、カスタム投稿の設定を変更した場合は、リダイレクトの処理に変更を反映させるために「パーマリンク設定」を空更新をする必要があるようです。
 
 

カスタム投稿とカスタムタクソノミーの関連記事

 
カスタムタクソノミーを設定するプラグインとして「Custom Post Type UI」がオススメです。
下記の記事では「Custom Post Type UI」の設定方法の解説と、そもそもカスタムタクソノミーの設定で行える項目の設定内容も解説をしています。
 Custom Post Type UIでカスタムタクソノミーを設定し編集する方法解説
 
また、同じ「Custom Post Type UI」ではカスタム投稿も設定できるようになっています。
下記の記事では、カスタム投稿の設定方法とあわせて、カスタム投稿で設定できる項目の詳細解説をしています。
 WordPressのカスタムフィールド、カスタム投稿、カスタムタクソノミーとは?
 
さらに、下記の記事では、そもそもカスタムタクソノミー、カスタム投稿、カスタムフィールドとはどういう使い方をするものなのか、について解説していますのであわせてご覧下さい。
 Custom Post Type UIでカスタム投稿を設定し編集する方法解説

 - WordPress

GoogleAdwords

GoogleAdwords

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

Message

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

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

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

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

  関連記事

MW WP Formの使い方詳細解説・WordPressの確認画面付フォーム

WordPressの確認画面付お問い合わせフォームプラグイン「MW WP Form」の詳細解説をしています。

WP Multibyte PatchでWordPressの管理画面のイタリック体を解消

管理画面の一部の文字がイタリック(斜体)になっているのはプラグイン「WP Multibyte Patch」が有効になっていないためです。日本語を使うには必ず有効化しましょう。

BackWPupでバックアップ・エラー発生の具体的対処方法事例6

BackWPupその6。エラーが起こったときの対処方法の具体例紹介です。

Custom Post Type UIでカスタムタクソノミーを設定・バージョン1.4対応解説

カスタムタクソノミーをプラグインCustom Post Type UIを使って設定する方法の解説。バージョンアップにより設定する項目も増え続け、より柔軟な設定が可能に。

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

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

WordPressのサイトマップ生成ツールPS Auto Sitemapの使い方

サイトマップを PS Auto Sitemapで自動生成する方法を説明します。このプラグインは Google用のサイトマップではなく一般ユーザが見るためのサイトマップページを作ります。

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

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

WordPress投稿にPHPを記述するショートコードの使い方add_shortcode

WordPressの投稿ページで PHPの処理を行うには add_shortcode関数を使ったショートコードという機能を利用します。

BackWPupでバックアップ・リストア(復元)の具体的手順

BackWPupその9。バックアップファイルからのリストア(復元)の手順です。

WordPressで ¥円マークが \ バックスラッシュになる原因と対処方法

円マークがバックスラッシュに変換される。その原因と対処方法を解説します。原因はCSSでのフォント指定に欧文フォントも含まれるため欧文フォントで表示されること。