为什么来自自定义帖子类型的帖子没有显示在“类别”档案中?

时间:2017-01-10 作者:Adrian

我已经创建了多个自定义帖子类型,它们应该共享“类别”。

创建过程如下:

 $args = array(
        \'label\'               => __(\'MyPostType\', \'key\'),
        \'description\'         => __(\'MyPostType\', \'key\'),
        \'labels\'              => $labels,
        \'supports\'            => array(\'title\', \'editor\', \'excerpt\', \'author\', \'thumbnail\', \'comments\', \'trackbacks\', \'revisions\', \'custom-fields\'),
        \'taxonomies\'          => array(\'category\'),
        \'hierarchical\'        => false,
        \'public\'              => true,
        \'show_ui\'             => true,
        \'show_in_menu\'        => true,
        \'menu_position\'       => 5,
        \'menu_icon\'           => \'dashicons-admin-tools\',
        \'show_in_admin_bar\'   => true,
        \'show_in_nav_menus\'   => true,
        \'can_export\'          => true,
        \'has_archive\'         => \'techblog\',
        \'exclude_from_search\' => false,
        \'publicly_queryable\'  => true,
        \'capability_type\'     => \'post\',
        \'rewrite\'             => $rewrite
    );

register_post_type(\'myposttype\', $args);
这就像预期的一样,我能够在全球范围内使用类别。

The Problem

类别存档仅显示“post”中的帖子。如果没有帖子,它只会说“没找到”。在单个帖子元信息中,列出了帖子类别。我可以点击它们,得到一个“找不到任何东西”的页面。

不幸的是,文档中没有提到这一点。我还需要做点别的吗?我想这应该是现成的。

1 个回复
最合适的回答,由SO网友:socki03 整理而成

您需要挂接到查询中,因为category archive页面只显式包含“post”类型,而不包含其他类型。

function namespace_add_custom_types( $query ) {
  if( (is_category() || is_tag()) && $query->is_archive() && empty( $query->query_vars[\'suppress_filters\'] ) ) {
    $query->set( \'post_type\', array(
     \'post\', \'myposttime\'
        ));
    }
}
add_action( \'pre_get_posts\', \'namespace_add_custom_types\' );
修改自this article 关于CSS技巧。

相关推荐

Pagination in Archives

你好,我是wordpress的新手,我很烂。我试图在wordpress中为我的博客页面添加编号分页。我下载了插件“page navi”,进入编辑器并更改了索引中的一个文件。php收件人: <?php if ( $wp_query->max_num_pages > 1 ) : ?> <div class=\"post-nav archive-nav\"> <?php wp_pagenavi();