2011-05-24 127 views
0

我已经构建了一个自定义帖子类型,该类型设置为使用帖子使用的开箱即用标签和类别。但是,如果我点击标签或分类链接,存档只会显示带有该标签的帖子,而不是我的自定义帖子类型。我尝试了几种方法来解决它,但他们似乎并没有工作。我的代码是:试图让自定义帖子类型和帖子显示在标签和类别页面中

// Add Resource Post Type 

add_action('init', 'hallam_init'); 

function hallam_init() { 
     // set up the labels 
     $labels = array(
       'name' => _x('Resources', 'post type general name'), 
       'singular_name' => _x('Resource', 'post type singular name'), 
       'add_new' => _x('Add New', 'resource'), 
       'add_new_item' => __('Add New Resource'), 
       'edit_item' => __('Edit Resource'), 
       'new_item' => __('New Resource'), 
       'view_item' => __('View Resource'), 
       'search_items' => __('Search Resources'), 
       'not_found' => __('No resources found'), 
       'not_found_in_trash' => __('No respources found in Trash'), 
       'parent_item_colon' => '' 
     ); 

     // set up the args 
     $args = array (
       'labels' => $labels, 
       'public' => true, 
       'publicly_queryable' => true, 
       'show_ui' => true, 
       'query_var' => true, 
       'rewrite' => array (
         'slug' => 'resources' 
       ), 
       'capability_type' => 'post', 
       'hierarchical' => false, 
       'menu_position' => 5, 
       'supports' => array(
         'title', 
         'editor', 
         'author', 
         'thumbnail', 
         'excerpt', 
         'comments' 
       ), 
       'taxonomies' => array(
         'collection', 
         'category', 
         'post_tag' 
       ), 
       'has_archive' => true 
     ); 

     register_post_type('ht_resource', $args); 
} 

// Add Taxonomy 

register_taxonomy('collection', 'ht_resource', array(
     'hierarchical' => true, 
     'label' => 'Collections', 
     'query_var' => true, 
     'rewrite' => true 
)); 

// Fix the archives 

    add_filter('pre_get_posts', 'add_to_query'); 

    function add_to_query($query) { 
     // if (is_home()) { 
      if($query->query_vars['suppress_filters']) // TODO check if necessary 
       return $query; 
      $supported = $query->get('post_type'); 
      if (!$supported || $supported == 'post') 
       $supported = array('post', 'ht_resource'); 
      elseif (is_array($supported)) 
       array_push($supported, 'ht_resource'); 
      $query->set('post_type', $supported); 
      return $query; 
     //} 
    } 

我是否缺少明显的东西?

回答

0

你可以尝试添加你的主题的functions.php吗?希望它会工作

function query_post_type($query) { 
    if(is_tag()) { 
     $query->set('post_type',$post_types=get_post_types('','names')); 
     return $query; 
    } 
} 
add_filter('pre_get_posts', 'query_post_type'); 

日Thnx

相关问题