如何与自定义帖子类型共享类别分类(事件日历插件)

时间:2013-06-26 作者:Chris

我有一个由事件日历插件创建的自定义帖子类型“事件”。它已经注册了自己的自定义分类法。是否有办法将常规WP帖子类别分配给其中一些事件,以便它们显示在类别档案中?

我在这个问题的答案中看到了get_posts cannot grab from specific category 我必须将“category”添加到Events post类型所支持的分类数组中,如下所示:

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

我下一步要采取什么措施才能让这一切顺利进行?

1 个回复
SO网友:Milo

您可以使用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\' );

结束