web-dev-qa-db-fra.com

Comment partager une taxonomie de catégorie avec un type de publication personnalisé (plug-in du calendrier des événements)

J'ai un type de message personnalisé "Événements" créé par le plugin The Calendar Calendar. Il a enregistré sa propre taxonomie personnalisée. Existe-t-il un moyen d'attribuer les catégories de messages WP régulières à certains de ces événements afin qu'ils apparaissent dans les archives de catégories?

Je vois dans la réponse à cette question get_posts ne peut pas extraire de catégorie spécifique que je dois ajouter 'catégorie' au tableau de taxonomies pris en charge par le type de message Events, comme ceci:

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

Quelle est la prochaine étape que je dois prendre pour que cela fonctionne?

7
Chris

Vous pouvez utiliser register_taxonomy_for_object_type() pour utiliser une taxonomie avec un type de publication sans avoir à toucher le code d'enregistrement du type de publication, exemple:

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

Pour que des événements apparaissent sur les pages de catégorie, je pense que vous devez modifier les requêtes de catégorie par défaut via pre_get_posts pour ajouter des types de publication personnalisés. Par défaut, ils interrogent uniquement le type de publication 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