《Cocoon》アイキャッチのカテゴリ表示を子カテゴリに統一する方法

《Cocoon》アイキャッチのカテゴリ表示を子カテゴリに統一する方法 WEB

Cocoonでは、アイキャッチ毎にカテゴリのラベルを表示してくれます。

1つの記事に1つのカテゴリであれば問題ないのですが、1つの記事に対して複数のカテゴリをつけた場合に、意図した動作にならなかったので解決方法をメモしておきます。

やりたいこと

カテゴリに親子関係をもたせ、その子カテゴリをアイキャッチ上に表示させる。

カテゴリは2階層。1つの記事に対し、親と子の1つずつカテゴリを設定するものとする。

対応前

記事に以下2つのカテゴリをつけてみます。

  • 0-PARENT ・・・ 親カテゴリ
  • 1-CHILD ・・・ 子カテゴリ

これを表示させると以下の通り、 アイキャッチ上には ”0-PARENT” が表示されます。

対応前

※ カテゴリ名を”CHILD”、”PARENT”とすると、CHILDが表示されます。頭文字でソートして最初に来たものが表示されているようです

対応方法

以下、同じような質問があったので、回答を参考にさせてもらいました。

アイチャッチ画像のカテゴリーラベルについて
度々お世話になります。 cocoonではアイチャッチ画像にカテゴリラベルが表示されるようになりデザイン的に素晴らしいなと思っています。 しかしカテゴリーを親子設定にしている場合「親カテゴリー」が選ばれラベルになってしまいます。 こちらのサイトでは子カテゴリがラベルとして選ばれているように見えるのです...

子テーマのfunctions.phpに以下を追記します。

function get_the_nolink_category(){
  $categories = get_the_category();
  if (isset($categories[0])) {
    $result = $categories[0];              //親カテゴリが存在しない場合は、取得した最初のカテゴリを使用
    foreach($categories as $category)
    {
      if($category->category_parent != 0)//親カテゴリが存在する場合=子カテゴリと判断
      {
        $result = $category;
        break;
      }
    }
    return '<span class="cat-label cat-label-'.$result->cat_ID.'">'.$result->cat_name.'</span>';
  }
}

※ 「親カテゴリがなかったら、子カテゴリ」と判断しています

対応結果

子カテゴリ”1-CHILD”が表示されるようになりました。

対応後

THIS POST
この記事が気に入ったら
いいね!しよう
最新情報をお届けします。
MEMOWEB
SERVER
スターサーバー

当サイトは、安くてハイスペックな、このスターサーバーを使用しています。
スタードメインでドメインを取得すれば、たまったポイントでサーバーが更に安くなります。
◎ オールSSD!高速サーバー環境
◎ 無料で使える!独自SSL機能
◎ 即時プラン変更にも柔軟に対応
◎ 大量アクセスに強いWebサーバー”nginx”
△ データ転送量がロリポップより少ない

ロリポップ

こちらもコスパの良いロリポップ。サポート体制が充実しているのに加え、利用者数も多いので、困ったときの情報はネットに多くあるかもしれません。
◎ データ転送量が多い
◎ 無料独自SSL機能
◎ 充実したサポート体制
△ サーバーストレージはHDD ※DBサーバーのみSSD
△ WebサーバーがApache 2.4.x

エックスサーバー

それなりのアクセス数が見込まれる場合はエックスサーバーがおすすめです。
ただ、値段もそれなりにするので、ブログ開設時には、ここまでのスペックは必要ないかもしれません。
◎ 圧倒的なハイスペック環境
◎ 無料独自SSL機能
◎ 大量アクセスに強いWebサーバー”nginx”
◎ モリサワのWebフォントが無料で使える
△ 低価格プランがない

COLOR CODE