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サイトを構築してみてください。
カスタム投稿タイプの条件分岐について
11月 13, 2024MW WP Formでカスタム投稿「shop」のカテゴリーを選択項目に追加する方法
11月 7, 2024WordPressで特定ページ、すべてのカテゴリー、投稿詳細ページからカノニカルタグを削除する方法
11月 4, 2024