WordPressの投稿ページにカスタム投稿を混ぜて表示したい場合、いくつかの方法があります。この記事では、`pre_get_posts`アクションフックを使ってクエリをカスタマイズする方法を解説します。
pre_get_postsアクションフックとは
`pre_get_posts`アクションフックは、WordPressが投稿を取得するクエリを実行する前に、そのクエリを編集するためのフックです。このフックを使うことで、表示する投稿の種類、並び順、件数などをカスタマイズすることができます。
投稿ページにカスタム投稿を混ぜる方法
投稿ページにカスタム投稿を混ぜて表示するには、`pre_get_posts`アクションフックを使って、クエリの`post_type`パラメータを変更します。`post_type`パラメータには、表示したい投稿タイプを配列で指定します。
function add_custom_post_types_to_query($query) { if (is_home() && $query->is_main_query()) { $query->set('post_type', array('post', 'custom_post')); } } add_action('pre_get_posts', 'add_custom_post_types_to_query');
このコードでは、`is_home()`関数で現在のページが投稿ページかどうかを判定し、`$query->is_main_query()`でメインクエリかどうかを判定しています。これらの条件を満たす場合、`$query->set(‘post_type’, array(‘post’, ‘custom_post’))`で、`post_type`パラメータに`post`(通常の投稿)と`custom_post`(カスタム投稿タイプ名)を指定しています。
このコードをテーマの`functions.php`ファイルに追加することで、投稿ページに通常の投稿とカスタム投稿が混在して表示されるようになります。
まとめ
`pre_get_posts`アクションフックを使うことで、WordPressのクエリをカスタマイズし、投稿ページにカスタム投稿を混ぜて表示することができます。この方法を使えば、柔軟なコンテンツ表示を実現することができます。