はじめに
例えば、カテゴリー「お知らせ」の記事は連絡事項がメインとなるため、サイトの投稿一覧には含めずに管理したい場合があると思います。
本来であれば、カスタム投稿タイプを作成して一般の記事と分けるのが理想的です。
しかし、「カスタム投稿の設定までは行わず、カテゴリー機能を使って手軽に管理したい」というケースも少なくありません。
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; });
さいごに
今回紹介した方法を使えば、カテゴリーを除外した際、ウィジェットからもそのカテゴリーが消えてしまう問題をスマートに解決できます。
「お知らせ」といった特定の情報を、メインの投稿一覧からは隠しつつ、サイドバーやフッターなどの目立つ場所には最新情報として掲載し続けることが可能です。
カスタム投稿タイプを導入するほどではないけれど、記事の役割をしっかりと分けて管理したいという運用スタイルに、ぜひこのカスタマイズを取り入れてみてください。

