如何在WordPress查询中获取分类法类别的所有记录?

Nik*_*oni 5 php wordpress

我在WP调用食谱中使用了简单的内容类型插件和创建的Post类型.我还在其中添加了分类法类别并创建了4个类别,如Starter,Drinks等.

现在在WP查询中我需要获取启动器的所有记录.那我该怎么办呢?

我正在使用此查询,但它无法正常工作.它给出了食谱的所有记录类型这里是查询

$recipes = query_posts('post_type=recipes&taxonomy=recipescategory&category_name=Starters');
Run Code Online (Sandbox Code Playgroud)

Pie*_*sen 5

您的代码中存在大量错误,并且对类别存在误解.

  • 永远不要用于query_posts构建自定义查询

注意:此函数不适用于插件或主题.如后面所述,有更好的,更高性能的选项来改变主查询.query_posts()是一种过于简单化和有问题的方法来修改页面的主要查询,方法是用新的查询实例替换它.它是低效的(重新运行SQL查询)并且在某些情况下会彻底失败(特别是在处理帖子分页时)

  • 如果必须运行自定义查询,请使用WP_Queryget_posts

  • category_name取类别slug,而不是名称.参数的名称是欺骗性的

  • 属于自定义分类的"类别"称为术语.我写了一篇帖子,我也把它包含在你可以在这里查看的codex中,它描述了差异.

  • 要从自定义分类中检索帖子,您需要使用a tax_query.类别参数在此处不起作用

完成上述所有操作后,创建您的查询,使其看起来像这样

$args = array(
    'post_type' => 'recipes',
    'tax_query' => array(
        array(
            'taxonomy' => 'recipescategory',
            'field'    => 'name',
            'terms'    => 'Starters',
        ),
    ),
);
$query = new WP_Query( $args );
if( $query->have_posts() ){
    while( $query->have_posts() ) {
        $query->the_post();

        //Your loop elements

    }
    wp_reset_postdata();
}
Run Code Online (Sandbox Code Playgroud)