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?
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' );