0

我制作了一个名为“会员资源”的自定义帖子类型,此 CPT 下的帖子有一些分类法,例如类别和标签。

标签=“多样性”类别=“指导”

当我访问以下网址时:

www.domain.com/tags/diversity

www.domain.com/tags/guidance

没有帖子出现。

虽然我在 CPT 功能上设置了 public => true 。

如果您转到“会员资源”存档页面,则会显示帖子,因此它们会显示,但当您按分类过滤它们时不会显示。

更新 -

将以下代码添加到我的functions.php文件允许成员资源CPT分别显示在类别和标签页面中,但现在在“页面”选项卡和所有其他内容选项卡(如帖子等)下的wordpress后端似乎有覆盖了我的页面和帖子,仅显示成员资源帖子。

add_action( 'pre_get_posts', 'add_my_custom_post_type' );

 function add_my_custom_post_type( $query ) {
if ($query->is_main_query()) 
    $query->set( 'post_type', array( 'member-resources' ) );
return $query;
} 
4

1 回答 1

1

您的代码看起来正确。但是您在过多的 wordpress 查询中包含了 CPT 成员资源。is_main_query 的意思是我认为的“循环”。

因此,您需要将其限制为仅在标签存档页面上运行。

以下代码来自 wordpress 网站

add_action( 'pre_get_posts', 'foo_modify_query_exclude_category' );
function foo_modify_query_exclude_category( $query ) {
    if ( ! is_admin() && is_main_query() && ! $query->get( 'cat' ) )
        $query->set( 'cat', '-5' );
}

您需要做类似的事情,但要确定您是否在“标签”页面中。

于 2013-01-23T18:49:13.810 回答