
ほとんどのWordPressインストールサイトでは、トップページに最近更新されたすべての記事が表示されます。しかし、何らかの理由で、すべてのカテゴリーの記事を表示したくない場合があります。そのような場合、以下の2つの方法でトップページから特定カテゴリーを除外。
トップページから特定カテゴリーを除外するプラグイン
Ultimate Category Excluderは、設定に基づいて記事カテゴリーを除外するWordPressプラグインです。これは単にトップページから特定カテゴリーの記事を除外するだけでなく、TAG、検索結果、アーカイブページ、RSSから特定カテゴリーを除外する設定も可能で、非常に実用的な機能を備えており、初心者ユーザーに適しています。
Ultimate Category Excluderは無料のWPプラグインです。以下のリンクからダウンロードしてインストールするか、管理画面から直接検索してインストールすることができます。
コードを使用してカテゴリーを除外する
カテゴリ記事を除外するためにプラグインをインストールしたくない場合は、コードを使用することもできます。
具体的な方法は、以下のコードをあなたのテーマの関数ファイルにコピーするだけです。
function exclude_category_home( $query ) {
if ( $query->is_home ) {
$query->set( 'cat', '-5' );
}
return $query;
}
add_filter( 'pre_get_posts', 'exclude_category_home' );上記コードの2行目はページを判定する部分で、is_homeはトップページ、is_searchは検索結果ページです。他のページを指定したい場合は、コードを修正して実現できます。
3行目の-5は、カテゴリIDが5のすべての記事を非表示にすることを意味します。
カテゴリIDは、マウスをカテゴリに移動してリンクURLから抽出できます。
複数のカテゴリを除外する場合は、カンマで区切ります。例:'-5 , -1'
トップページが静的ページの場合、ブログアーカイブページでカテゴリーの記事を除外するには?
Naiba サイト構築ノートでは現在、トップページに静的ページを設定し、ブログ記事は別のページで呼び出しています。この場合、上記のコードを使用すると、トップページとブログページの両方で除外したカテゴリのコンテンツが表示されなくなります。
トップページのみで除外し、ブログアーカイブページでは除外しないようにするには、サイトのテーマファイル(私の場合はindex.php)を編集して以下のコードを挿入します
<?php if ( have_posts() ) : query_posts($query_string .'&cat=-1'); while ( have_posts() ) : the_post(); ?>
上記のコードは自分で改造する必要があるかもしれません。クエリ部分はquery_posts($query_string .'&cat=-1');
