WordPressで特定カテゴリーに関連する複数のカテゴリーの投稿を表示する方法
WordPressでは、特定のカテゴリーを表示する際に、
関連する複数のカテゴリーからも投稿を表示することが可能です。
これにより、ユーザーは特定のカテゴリーを閲覧している際に、
他の関連する情報にもアクセスしやすくなります。
本記事では、sampleカテゴリーに関連する複数のカテゴリーを表示する方法について説明します。
目的
たとえば、sampleカテゴリーのページで、sample-hogeなどの関連カテゴリーの投稿も同時に表示したい場合や、
他のカテゴリーでも同様のカスタマイズを行いたい場合があるでしょう。
これを実現するために、WordPressのpre_get_postsフックを利用して、
メインクエリをカスタマイズします。
具体的な実装
functions.phpにコードを追加する
まず、functions.phpに以下のコードを追加します。
このコードにより、sampleカテゴリーで関連するカテゴリーの投稿も表示できるようになります。
/**
* Modify the main query to include related sample categories.
*
* This function modifies the query for the 'sample' category to also include
* posts from their respective related categories.
*
* @param WP_Query $query The main query.
*/
function modify_sample_category_query($query) {
// 管理画面ではなく、メインクエリが対象かどうかを確認
if (!is_admin() && $query->is_main_query()) {
// 'sample'カテゴリーの場合、関連するカテゴリーも含める
if (is_category('sample')) {
$query->set('category_name', 'sample,sample-hoge');
}
// 'sample-event'カテゴリーの場合、関連するカテゴリーも含める
elseif (is_category('sample-event')) {
$query->set('category_name', 'sample-event,sample-event-hoge');
}
// 'sample-knowledge'カテゴリーの場合、関連するカテゴリーも含める
elseif (is_category('sample-knowledge')) {
$query->set('category_name', 'sample-knowledge,sample-manner-hoge,sample-flow-hoge,sample-knowledge-hoge');
}
}
}
// pre_get_postsフックを使ってメインクエリを変更
add_action('pre_get_posts', 'modify_sample_category_query');
カスタマイズの詳細
このコードでは、pre_get_postsフックを使用して、WordPressのメインクエリを変更しています。
以下がその仕組みです。
is_admin()
管理画面でのクエリには影響を与えず、フロントエンドでのみ動作します。
$query->is_main_query()
メインクエリかどうかを確認し、メインクエリのみを対象にします。
is_category()
特定のカテゴリーが表示されている場合に、そのカテゴリーに関連する他のカテゴリーも追加します。
例えば、sampleカテゴリーが表示されている場合には、sample-hogeもクエリに含まれるため、これらのカテゴリーの投稿が一緒に表示されます。
同様に、sample-eventカテゴリーの場合には、sample-event-hogeの投稿も表示されます。
また、sample-knowledgeカテゴリーでは、sample-manner-hogeやsample-flow-hogeなどの関連カテゴリーも含まれます。
カスタマイズの効果
このカスタマイズによって、たとえば以下のようなシナリオが実現できます。
sampleカテゴリーに訪れたユーザーは、他の関連するsample-hogeカテゴリーの情報も同時に確認できる。sample-eventカテゴリーでは、sample-event-hogeのイベント情報がまとめて表示され、ユーザーが簡単に情報を把握できる。sample-knowledgeカテゴリーでは、基礎知識だけでなく、mannerやflowに関する情報も同時に提供されるため、総合的な理解を促進する。
まとめ
WordPressでカテゴリーごとの投稿を表示する際に、
関連するカテゴリーの投稿も表示するカスタマイズは、ユーザーエクスペリエンスを向上させ、
情報をより効率的に提供するのに役立ちます。pre_get_postsフックを使うことで、柔軟にメインクエリを調整し、
さまざまなカテゴリー間の関連性を反映することが可能です。
これで、特定のカテゴリーに関連する投稿も含めて表示できるようになります。
ぜひ、この方法を活用して、ユーザーが必要とする情報にスムーズに
アクセスできるWebサイトを構築してみてください。


【保存版】Splide スライダーで画像が表示されない・崩れる原因はLazy Loadだった!skip-lazyで一発解決する方法
11月 27, 2025WordPressで非階層タクソノミーをチェックボックス形式で扱う方法【開発者向けTips】
7月 30, 2025WordPressで症例ページを管理するカスタム投稿&分類設計ガイド【サンプル構成付き】
7月 23, 2025