プログラム最終更新日:2016/10/03ラムネグから一言:寝る前に読むとくだらなすぎて逆に寝れると好評なすごい適当なブログをこっちではじめてます.ワードプレスで特定カテゴリだけ記事一覧から除外ブログの記事一覧ページやサイト内検索の結果に毎日投稿している日記タイプの記事がたくさん表示されてしまい、サイトを見てくれている方の目当ての記事を探す邪魔になってはいないでしょうか?ワードプレスでは記事一覧ページにすべての記事が表示され、また検索もすべての記事を対象に検索をしてしまいます。今回はワードプレスで特定カテゴリのみ記事一覧やサイト内検索から除外する方法について紹介します。ブログにいろいろなカテゴリを作っており、役に立つ情報から日々のつぶやきまで扱っているサイトで大事な設定です。);pre_get_postsフックを使ってクエリの変更を行っています。上記をfunctions.phpにコピペして使用くださいね。7行目の-40の数字を除外したいカテゴリIDにしてください。このコードではトップページ(is_home)の場合と検索の場合(is_search)のみ特定カテゴリ(例の場合だとカテゴリID40の記事)を除外します。pre_get_postsとはフックについてはカンタンにですがコチラ(フックでデフォルト画像を設定)を参考にしてください。pre_get_postsフックはワードプレスが記事情報をデータベースから取ってくるときに毎回呼ばれるフックです。気をつけないといけないのはメインクエリ(記事本文)以外の記事情報をデータベースから取るときもこのフックが呼ばれる点です。サイドバーに新着記事を表示する場合もこのフックが呼ばれるので、新着記事一覧からも先ほど指定したカテゴリIDの記事が省かれることになります。先頭4行のおまじないは必ずつけておいてください。管理画面の場合とメインクエリじゃない場合はなにもしないよ!と書かれています。){return;}さらに特定の記事カテゴリページからも除外する例えば、TOP→親カテゴリ→子カテゴリのようにカテゴリが階層になっている場合、親カテゴリの一覧ページからも子カテゴリの記事を除外したい場合があります。);7行目が新しく増えています。ここの’ai’の部分を’-40’の記事を除外したいカテゴリスラッグ名に変えてください。例の場合だと記事一覧ページとaiという親カテゴリページの場合に、子カテゴリであるID40番のカテゴリの記事全てが表示されなくなります。pre_get_postsで記事の除外が簡単に出来る!今回は特定カテゴリに含まれる記事全てをサイト内検索や記事一覧から除外する方法について紹介しました。その設定にはfunctions.phpにpre_get_postsの設定をすればできるのでした。今回pre_get_postsで記事一覧やサイト内検索、そして親カテゴリの場合の設定をしましたが、このpre_get_postsは他にもいろいろな条件で記事の除外や並び順の変更ができます。こちらのサイトが詳しく紹介してくれていました。自身の使いやすいようにカスタマイズしてみてくださいね。