wake-up-neo.net

So geben Sie die Kategorietaxonomie für einen freien Beitragstyp (Das Event-Kalender-Plugin)

Ich habe einen benutzerdefinierten Beitragstyp "Ereignisse", der vom Veranstaltungskalender-Plugin erstellt wurde. Es hat eine eigene Taxonomie registriert. Gibt es eine Möglichkeit, die normalen WP Beitragskategorien einigen dieser Ereignisse zuzuweisen, damit sie in Kategoriearchiven angezeigt werden?

Ich sehe in der Antwort auf diese Frage get_posts kann nicht von einer bestimmten Kategorie greifen , dass ich 'category' zu der Reihe von Taxonomien hinzufügen muss, die vom Post-Typ "Events" unterstützt werden.

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

Was ist der nächste Schritt, den ich unternehmen muss, um dies zum Laufen zu bringen?

7
Chris

Sie können register_taxonomy_for_object_type() verwenden, um eine Taxonomie mit einem Beitragstyp zu verwenden, ohne den Beitragstyp-Registrierungscode berühren zu müssen. Beispiel:

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

Damit Ereignisse auf den Kategorieseiten angezeigt werden, müssen Sie die Standardkategorienabfragen über pre_get_posts ändern, um benutzerdefinierte Beitragstypen hinzuzufügen. Standardmäßig wird nur der Beitragstyp post abgefragt.

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