web-dev-qa-db-ja.com

カテゴリ分類をカスタム投稿タイプと共有する方法(イベントカレンダープラグイン)

イベントカレンダープラグインによって作成されたカスタム投稿タイプ「イベント」があります。独自のカスタム分類法が登録されています。カテゴリアーカイブに表示されるように、通常のWP投稿カテゴリをこれらのイベントの一部に割り当てることができる方法はありますか。

私はこの質問に対する答えを見ています get_postsは特定のカテゴリから取得することはできません 私はEventsの投稿タイプによってサポートされる分類法の配列に 'category'を追加しなければなりません。

register_post_type( 'tribe_events', array( 'taxonomies' => array( 'category' ) ) );

これを機能させるために必要な次のステップは何ですか?

7
Chris

register_taxonomy_for_object_type() を使用すると、投稿タイプの登録コードに触れることなく、投稿タイプで分類法を使用できます。次に例を示します。

function wpa_categories_for_events(){
    register_taxonomy_for_object_type( 'category', 'tribe_events' );
}
add_action( 'init', 'wpa_categories_for_events' );

カテゴリページにイベントを表示するには、デフォルトのカテゴリクエリを pre_get_posts で変更してカスタム投稿タイプを追加する必要があります。デフォルトでは、post投稿タイプのみがクエリされます。

function wpa_events_on_category_pages( $query ) {
    if ( $query->is_category() && $query->is_main_query() ) {
        $query->set( 'post_type', array( 'post', 'tribe_events' ) );
    }
}
add_action( 'pre_get_posts', 'wpa_events_on_category_pages' );
7
Milo