我使用了简单的内容类型插件&在WP调用食谱中创建了Post类型。我还在其中添加了分类法类别&创建了4个类别,如Starter,Drinks等。
现在在WP查询中,我需要获取启动器的所有记录。 那我该怎么办呢?
我正在使用此查询,但它不起作用。它提供了Recipes post类型的所有记录 这是查询
$recipes = query_posts('post_type=recipes&taxonomy=recipescategory&category_name=Starters');
答案 0 :(得分:5)
您的代码中存在很多错误,并且对类别存在误解。
query_posts
构建自定义查询注意:此功能并非由插件或主题使用。如后面所述,有更好的,更高性能的选项来改变主查询。 query_posts()是一种过于简单化和有问题的方法来修改页面的主要查询,方法是用新的查询实例替换它。它是低效的(重新运行SQL查询)并且在某些情况下会彻底失败(特别是在处理帖子分页时经常会失败)
category_name
的类别为 slug ,不是名称。参数的名称是欺骗性的
"类别"属于自定义分类的术语称为术语。我写了一篇帖子,我也把它包含在您可以查看的{x}中,它描述了差异。
要从自定义分类中检索帖子,您需要使用here。类别参数在这里不起作用
如上所述,请创建您的查询,使其看起来像这样
$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();
}
答案 1 :(得分:1)
试一试
$ar = array (
'post_type'=>'recipes',
'taxonomy'=>'recipescategory',
'category_name'=>'Starters'
);
$posts = get_posts($ar);
** foreach循环**
foreach($posts as $p){ ?>
<div class="sub_cont">
<div class="sub_img">
<?php $url = wp_get_attachment_url( get_post_thumbnail_id($p->ID));?>
<a href="<?php echo $permalink = get_permalink( $p->ID); ?>"><img src="<?php echo $url; ?>" longdesc="URL_2" alt="Text_2" /> </a>
</div>
<div class="desc_title">
<a href="<?php echo $permalink = get_permalink( $p->ID); ?>">
<?php echo $post_title=$p->post_title; ?>
</a>
</div>
<div class="cont_add"></div>
</div>
<?php } ?>
答案 2 :(得分:0)
您可以使用get_posts功能
$args = array("post_type"=>"recipes","category_name"=>"starter","posts_per_page"=>20);
$starters = get_posts($args);