WP自定义帖子类型查询不返回自定义分类

时间:2019-06-04 13:32:57

标签: php wordpress

我有以下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和WP相对较新,并且不确定100%如何获取数据。在Javascript中,您将获得一个可以穿越的对象。添加print_r($my_query)时,我找不到想要的东西。在文档的前面,我已经启动了循环:

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

但是我不知道为什么php / wp不能显示对象中包含的所有数据。理想情况下,我只想查询单篇文章并获取所有数据,以包含有关所有附加分类法的信息。我不想要按分类法查询文章,所以我有两个问题:

1)如何正确查询此结果以返回结果? 2)如何在前端显示此数据?

编辑:tax_query为真时,According to this is_singular()被忽略。 print_r( is_singular() )的结果为1(又是真的吗?!),这会有所作为吗?

我还为分类法附加了自定义帖子类型。我也需要检索此信息。

1 个答案:

答案 0 :(得分:0)

您的分类标准标记为author,而不是authors

$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来注册帖子类型,则可以将archive- {posttype} .php用于存档模板。

您可以选中Template Hierarchy