【WordPress】メインクエリから特定のカテゴリーの投稿を除外する【pre_get_posts】2023.04.01WordPressBこんにちは、ryohei(@ityryohei)です!本記事では、WordPressのアクションフックのpre_get_postsを使って、メインクエリから特定のカテゴリーの投稿を除外する方法をご紹介しています。WordPressのメインクエリから特定のカテゴリを除外したいな。良い方法ないかな?上記の疑問にお答えします。メインクエリから特定のカテゴリーの投稿を除外するテーマ内のfunctions.phpに下記フックを追加します。下記では、読み込まれたページがトップページであれば、$queryにcategory__not_inを設定し、指定したカテゴリーIDの投稿を除外しています。'my_pre_get_posts');上記ではトップページを対象にしていますが、カスタム投稿のアーカイブページで実行したい場合は下記のようにします。'my_pre_get_posts');pre_get_postsとは上記コード内に登場しているpre_get_postsについて補足します。処理内容で察している方も多いと思いますが、pre_get_postsはメインクエリのループ実行前に呼び出されるフックです。pre_get_postsにフックすることで、メインクエリを変更することができます。メインクエリを変更するには、$query->set()でパラメータを渡します。メインクエリを変更することで、取得する投稿情報の内容を変更することができます。以前はquery_posts等が使用されていましたが、query_postsは現在非推奨関数に指定されています。メインループのクエリを変更したい場合はpre_get_postsを使う方法が主流となっていますので、覚えておくとよいかもしれません。参考:https://developer.wordpress.org/reference/hooks/pre_get_posts/最後にメインクエリは各テンプレートに使用されるため、pre_get_postsの使い方をマスターすれば取得する情報をコントロールすることができます。CC)はAdobe社が提供するクリエイター向けのサービスです。Effects」など全20以上のアプリが提供されており、幅広いプランが用意されています。CCの全20以上のアプリが使用できるプランです。コンプリートプラン(12ヵ月)」がセットになって39,980円(税込)で利用できます。Cloudのライセンスを購入でき、以降のライセンス更新も可能。動画教材で基礎スキルを習得できるので、入門する方にも便利な講座です。詳しくは下記のリンクからチェックしてみてくださいね。Webエンジニア福岡のWeb制作会社でエンジニアをしています。記事に関するご質問やご相談等ございましたら気軽にお問い合わせください。サービス・ツールSPEEC登録不要、無料で使えるビジネス書類作成サービスです。見積書~領収書までのPDFを一括で作成することができます。犬のごはん楽天市場で販売中の犬のごはんを好みの条件で簡単に絞り込むことができるドッグフード検索サイトです。HASHWordPressのログイン用にハッシュ化したパスワードを生成するツールです。DBからパスワードを変更する場合にご利用ください。Programご訪問いただきありがとうございます!本サイトを運営しているryoheiと申します。福岡のWeb制作会社でエンジニアをしています。本サイトは私が業務中に得た知識をアウトプットする場として2015年から運営しています。into-the-program.com。