当前位置: 首页 > 知识库问答 >
问题:

WP custom post type查询不返回自定义分类法

韩景辉
2023-03-14

我有以下CPT:

        array(
            'slug'        => 'articles',
            'single_name' => 'Article',
            'plural_name' => 'Articles',
            'menu_name'   => 'Articles',
            'description' => '',
            'dashicon'    => 'dashicons-media-default'
        ),

以及以下出现在CPT条款下的自定义分类法:

        array(
            'slug'        => 'author',
            'single_name' => 'Author',
            'plural_name' => 'Authors',
            'menu_name'   => '→ Authors',
            // This is where you sync the taxonomy to the post types above
            'post_type'   => ['articles', 'news']
        ),

现在,我试图创建一个single-articles.php,在其中我查询一个文章,以包括所有自定义分类法信息。

我已经尝试了所有的变体:

$args = array(
    'post_type' => 'articles',
    'tax_query' => array(
        array(
            'taxonomy' => 'author',
            'field' => 'slug'
        ),
    ),
);

我对PHP比较陌生

if (have_posts()) :
  while (have_posts()) : the_post()

但是我不明白为什么php/wp没有显示对象中包含的所有数据。理想情况下,我只想查询一篇文章并返回所有数据,以包含所有附加分类法的信息。我不想按分类法查询文章,因此我有两个问题:

1)如何正确查询以获取结果?2)如何在前端显示这些数据

编辑:根据这一点,当为单数时(为真),将忽略税务查询print\u r(is\u singular())会导致1(又称true?!),这会有什么不同吗?

我也有自定义的帖子类型附加到分类法。我也需要找回这个信息。


共有1个答案

缪坚诚
2023-03-14

您的分类法slug是作者而不是作者

$args = array(
'post_type' => 'articles',
'posts_per_page' => -1,
'tax_query' => array(
    array(
        'taxonomy' => 'author',
        'field' => 'slug',
        'terms' => 'your-term-here',
    ),
  ),
);

您可以对单个模板使用single-{posttype}.php。

而且,如果您已经将has_archive参数设置为true来注册post类型,那么您可以使用archive-{posttype}.php作为归档模板。

您可以检查模板层次结构

 类似资料:
  • 我有一个自定义的文章类型(媒体文章),它使用一些自定义字段,有一个自定义分类法(媒体文章类别)和该分类法中的14个术语。我可以使用CPT归档模板输出所有自定义帖子。 我在侧边栏中还有一个菜单,它列出了用于过滤自定义帖子的术语(我使用了一个自定义WP菜单小部件来创建列表)。 我用一个查询设置了一个自定义分类模板。根据args中放置的分类术语,我能够成功地组合或单独显示帖子。因此,如果我不需要使用过滤

  • 我已经创建了一个包含多个分类法的自定义查询,在此基础上,我使用进行分页。分类法是通过下拉选择表单来选择的,使用可以过滤帖子,这只是一个临时解决方案,但目前效果良好,值得注意。 分页工作正常,当选择分类术语时,帖子可以正确显示,但是当我离开第一页,比如说我进入第2页,在下拉选择器中选择不同的分类术语时,URL会保留当前页码,并向其中添加选择器ID。我想实现的是,当我在选择器中单击不同的分类法时,新选

  • 为了计算添加到DB表名称中的项数,我使用了一个带有Spring JPA的本机查询: DTO对象,应该包含在返回的列表中: 我似乎没有正确定义dto?如何正确定义dto,以便返回对象列表?

  • 当我执行一个web客户端请求(到一个外部api)并且响应是4xx或5xx代码时,我遇到了一个问题。建议处理该响应并使用自定义类检索响应 Web客户端配置是 处理过滤器.class MyExpcetion.class 但是我的客户回复总是给我一个默认格式 代替 怎么了?谢谢