ここでは、特定のカテゴリの記事をトップページ、または最近の記事に表示させないやり方をまとめておく。これはこの記事のカテゴリ「個人的備忘録」のために行った作業で、普段と違う記事、特に読者に向けて書かれておらず個人的に残しておきたい記事に適している。かつ、同じところで困っている人向けにsimplicityに特化した解決方法の提示としてここに記しておく。
特定のカテゴリの記事をトップページに表示しない方法
1. カテゴリの作成
まずはカテゴリを作る。僕の場合「個人的備忘録」がそれにあたる。【投稿】→【カテゴリー】を選んで新規作成する。
2. カテゴリのIDを調べる
先ほど作ったカテゴリ名にポインタを合わせると(クリックはしない)、画面の下の方にアドレスが出てくる。その中に
…tag_ID=〇〇…
という個所があるので、〇〇の数字を覚えておく。
参照https://webkaru.net/wordpress/post-category-id/
3.function.phpにコードを書き込む
ここでは子テーマでの操作手順を記す。ワードプレスの【外観】→【テーマ編集】を開き、右側にある【テーマファイル】から【テーマのための関数 function.php】をクリック。以下のコードを貼り付ける。
function exclude_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '-1,-1347' );
}
}
add_action( 'pre_get_posts', 'exclude_category' );
赤アンダーラインで示したところが除外するカテゴリを指定している。先ほど確認したカテゴリIDを入力すればOK。その際、例のように-(マイナス)をつけることを忘れずに。少しでもおかしなところがあるとエラーが出るので、エラーの出ている箇所をチェックする。
特定のカテゴリの記事を最新記事に表示させない方法
次に、特定のカテゴリの記事を、最新記事に表示させない方法を記す。前項と同じようにカテゴリIDが必要になる。
1. 最新記事のウィジェットの種類を確認する
ウィジェットで最新記事を使用している場合、その設定が「デフォルト」になっているか、「大きなサムネイル」になっているかを確認する。デフォルトは「new-entries.php」、大きなサムネイルは「new-entries-large.php」を編集することになる。以下、デフォルトだった場合で説明する。
2. FTPを使って親テーマの「new-entries.php」を探す
最新記事のウィジェットの種類がデフォルトだった場合は「newentries.php」を親テーマの中から探す。このファイルはwordpressから編集できないのでFFFTPなどを使う。
3. 「new-entries.php」をコピーし編集する
このファイルを編集するが、最終的には子テーマのフォルダに置くので、親テーマのファイルはいじらない(親テーマを書き換えるとアップデートしたときに変更した場所が消える)。コピーしたファイルに以下のような場所を探す。
$args = array(
'posts_per_page' => $g_entry_count,
);
ここに下記のように一行追加する。
$args = array(
'posts_per_page' => $g_entry_count,
'category__not_in' => [カテゴリID],
);
赤アンダーラインの部分が追加する箇所。カテゴリIDを記入するが、ここには-(マイナス)は必要ない。
以上が「特定のカテゴリの記事をトップページと新着記事に表示させない方法」だ。カテゴリからか検索でしか表示されないと思う。
フルオーダーメイドのカリキュラム作成できるエンジニア塾【Samurai】
- 見出しデザイン変更方法、親テーマとのデザインのかぶり修正
- 特定のカテゴリの記事をトップページ、新着記事に表示しない方法
- スマホとPCでロゴ画像を替える方法。ヘッダーの余白の変更。
コメント