WordPressでトップページの特定の記事を非表示にする方法




WordCamp Tokyo 2018に参加してみてWordPressでブログを作り込みたいという気持ちが強くなり、カスタマイズ方法を調べて実践してみることにします。
実際に導入したカスタマイズは備忘録も兼ねて(またやるかもしれないから)ここに書き記しておきます。

ちなみに私はWordPressに関しては初心者。
基本的にはテーマ(デザイン)をダウンロードしてWordpressのダッシュボードからできるカスタマイズをしたくらいで使っています。

私が使っているテーマはOPEN CAGEさんの「ALBATROS」。
有料のテーマですが、テンプレートの元々のデザインが私の作りたいブログのイメージと近いのと、サイト内の「よくある質問」が充実しているので、このテーマを選びました。



ブログとnoteの棲み分けをするか迷っている

WordPressでブログを運営するうえで個人的な日記とコンテンツ(情報)を同じ場所に書くか、日記は別媒体(noteなど)に書くかを迷っています。

雑記ブログだから何を書いてもいいのですが、個人の日記が毎日トップページに出てくるのもどうかなと思い特定の記事のみ、トップページには非表示にすることができないかを調べてみたところ、ありました!

WordPressでトップページの特定の記事を非表示にする方法

やり方は「functions.phpにコードを書く」だけ。簡単。
参考にしたサイトはこちら

トップページの記事一覧を特定カテゴリーで絞り込む方法(functions.php)

実際に追加したコードはこちら!
特定のカテゴリーをブログのトップページに表示させなくするコード

function my_home_exclusion_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( ‘cat’, ‘-カテゴリID’ );
}
}
add_action( ‘pre_get_posts’, ‘my_home_exclusion_category’ );

特定のタグをブログのトップページに表示させなくするコード

function exclude_home_tags( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( ‘tag__not_in’, array( タグID ) );
}
}
add_action( ‘pre_get_posts’, ‘exclude_home_tags’ );

でも1つだけ、注意しなければならない点があります。

子テーマを導入しないとカスタマイズのたびにやり直し

「子テーマ」というものを導入していないと、テーマの更新をしたときにせっかく追加したコードが消えちゃいます!
これは他のカスタマイズでも同じで、テーマを更新するたびに更新された新しいテーマが上書きされるので、カスタマイズが全部やり直しになっちゃいます。

それを防ぐためにはテーマ(親テーマ)の他に、「子テーマ」というものを導入しましょう。

子テーマについての参考にしたサイトはこちら

子テーマのダウンロード・導入

まとめ

特定のカテゴリをブログのトップページに表示させないようにするには、
①子テーマを導入
②ダッシュボード→外観→テーマの編集で「functions.php」を見つけてコードを追加
③非表示にさせたいカテゴリーやタグのIDを調べて②で書いたコードに書き込む

これだけで、個人的な日記をトップページに並べずにひっそりと書くことができるようになりました。













シェア・購読いただけると嬉しいです