任意のカテゴリーを投稿一覧から除外し、「新着記事」のみ表示する方法

Cocoonカスタマイズ集
この記事は約2分で読めます。
記事内に広告が含まれています。

はじめに

例えば、カテゴリー「お知らせ」の記事は連絡事項がメインとなるため、サイトの投稿一覧には含めずに管理したい場合があると思います。

本来であれば、カスタム投稿タイプを作成して一般の記事と分けるのが理想的です。
しかし、「カスタム投稿の設定までは行わず、カテゴリー機能を使って手軽に管理したい」というケースも少なくありません。

Cocoon設定→インデックス→「除外カテゴリー」を設定すると、メインの投稿一覧だけでなく「新着記事」ウィジェットなどからも一括で除外されてしまいます。
そこで、メインの投稿一覧からは特定のカテゴリー(例:お知らせ)を除外しつつ、「新着記事」ウィジェットではそのカテゴリーを表示させます。

この記事では、この方法について説明します。

実装手順

以下の手順で実装します。

  • ラベル
    Cocoon設定

    表1に示す項目を設定をします。

    Cocoon設定
    設定大項目項目設定値
    インデックスリスト設定除外カテゴリー
    投稿ページ送りナビ設定除外カテゴリー
  • ラベル
    ウィジェット設定

    表示させたい場所に「カスタムHTML」ウィジェットを配置し、new_listショートコードを入力します。
    この際、先ほど除外設定をしたカテゴリーIDを指定してください。
    例えば、除外した「お知らせ」のカテゴリーID=1である場合は、以下のように記述します。

    [new_list cats=1]
  • ラベル
    PHPを追加

    以下のコードをfunctions.phpに追加します。

    // 「新着記事」は除外カテゴリーを解除
    add_filter('widget_entries_args', function ($args) {
      unset($args['category__not_in']);
    
      return $args;
    });
    
    
    // 「新着情報」は除外カテゴリーを解除
    add_filter('get_info_list_args', function ($args) {
      unset($args['category__not_in']);
    
      return $args;
    });

さいごに

今回紹介した方法を使えば、カテゴリーを除外した際、ウィジェットからもそのカテゴリーが消えてしまう問題をスマートに解決できます。

「お知らせ」といった特定の情報を、メインの投稿一覧からは隠しつつ、サイドバーやフッターなどの目立つ場所には最新情報として掲載し続けることが可能です。
カスタム投稿タイプを導入するほどではないけれど、記事の役割をしっかりと分けて管理したいという運用スタイルに、ぜひこのカスタマイズを取り入れてみてください。

タイトルとURLをコピーしました