WordPressで特定カテゴリだけをトップページに表示しない設定 3ステップ

この記事は約4分で読めます。

あるよね?

オレは、日々更新する勉強だとかダイエット関連記事は、カテゴリには一覧を表示したいけど、トップページには表示したくなかった。

だが、標準機能ではできない。

そこで、ちょいと設定をいじったわけだ。

簡単3ステップ!

対象となる人

  • トップページの一覧には表示したくないカテゴリだが、カテゴリ別のページやタグのページには記事のリストを表示させたい記事がある人。
    • 記事毎であれば、文書設定→その他→アーカイブに出力しない□にチェックを入れることで、リストに表示しない設定ができる。
      ただし、カテゴリやタグのページに表示されるリストにも表示されなくなるので、トップページだけに表示したくないという細かな制御はできない。
  • Kusanagi for Conohaでの話
    • 基本はKusanagiであれば同じかと思われる
  • テーマはCocoon、子テーマを適用している人
    • 他のテーマでも、設定ファイルの保存場所が違うだけで作業は同じだ。

Step.1 ファイルのアクセス権限を修正する

VPSなり、レンタルサーバにログインして行う作業だ。

もしくはファイルマネージャ的なツールを使う人も居るかもしれない。

自分の環境に合わせてやってくれ。

Kusanagi for ConohaでテーマはCocoon、子テーマを使用している人は、以下のディレクトリに設定ファイルが保存されている。

/home/kusanagi/「プロファイル名」/DocumentRoot/wp-content/themes/cocoon-child-master

設定ファイルをll(えるえる)コマンドで表示するとコレ。

# ll
-rw-r--r--. 1 kusanagi kusanagi   169 10月  9  2020 functions.php

この行頭にあるrwとかが権限。

上記の内容だと設定ファイルは読み込み専用になっている。

では、どうするのか。

まぁ難しいことは抜きにして、下記のコマンドを打ってくれ。

# chmod 666 functions.php

すると、さっきの表示がこう変わる。

-rw-rw-rw-. 1 kusanagi kusanagi 169 10月 9 2020 functions.php

これでサーバをいじる作業は終わり。

Step.2 除外したいtag_IDを調べる

トップページに表示したくないカテゴリは、カテゴリ名でなくtag_IDという数字で設定する。

その調べ方はコレ。

WordPressにログイン。

ダッシュボード→投稿→カテゴリーを選択する。

表示されたカテゴリー一覧から、除外したいカテゴリーをクリックする。

ブラウザのアドレスバーに表示されているURLのうち、下記の○○がtag_ID。

&tag_ID=○○&

これをどっかにメモしとく。

Step.3 テーマファイルにコードを追記する

最後のステップ。

ダッシュボード→外観→テーマエディターを選択。

画面右側の以下をクリック。

テーマのための関数 (functions.php)

表示された編集ボックスの一番下に、以下のコードを追記する。

○○のところにさっきのtag_IDを書く。

//トップページに表示させたくないカテゴリを指定
function exclude_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '-○○' );//マイナスをつけた特定IDを除外する
}
}
add_action( 'pre_get_posts', 'exclude_category' );

複数のカテゴリを表示させたくない場合は、マイナス記号+tag_IDを半角カンマで複数記載すれば良い。

この情報は以下から丸パクリしました。

【Cocoon】トップページから特定のカテゴリーを除外する方法
トップページから特定のカテゴリーだけを除外(非表示に)する方法を紹介していきたいと思います。今回の手法はCocoonに限らずどのテーマでも同じなので他テーマをお使いの方もぜひご覧ください。それでは早速、説明していきます〜。

勉強になります。

ありがとうございます!

動作確認して終了だ!

コメント

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