我有一个食品网站,我有一个名为食谱的自定义帖子类型。 我需要做的是显示产品附带的配方类别中的3个帖子。 我已经创建并将自定义帖子类型附加到我的产品,但我无法让它工作!我有点迷茫。我已设法循环完成食谱并获得3个帖子,但我不知道如何过滤出食谱的类别。
示例:
-Recipe Categories
Sauce
Spicy
假设我有一个产品“Noodle”,我想展示Sauce类别的3个帖子。我无法显示它。我总是收到每个食谱类别的帖子。
这是我发布3个帖子的循环。
<?php $loop = new WP_Query( array( 'post_type' => 'recipes', 'posts_per_page' => 3 ) );
while ( $loop->have_posts() ) : $loop->the_post(); ?>
<a href="<?php the_permalink(); ?>">
<img src="<?php the_post_thumbnail_url(); ?>">
<h4><?php the_title(); ?></h4>
</a>
<?php endwhile; ?>
我曾尝试将分类法类别添加到我的数组参数中,但没有任何反应! 这是我试图做的(有很多变化):
$mytaxonomy = 'recipe_category';
$myterms = get_the_terms($post, $mytaxonomy);
然后我使用与上面相同的方法,在数组中添加术语。 有人可以帮帮我吗?我迷路了,但我需要知道为什么它不起作用所以我可以提高自己。
答案 0 :(得分:2)
WP_Query还支持tax_query
按类别发布帖子,试一试:
global $post;
$terms = get_the_terms($post->ID, 'recipe_category');
$recipe_cat_slug = array();
foreach ($terms as $term)
{
$recipe_cat_slug[] = $term->slug;
}
$args = array(
'post_type' => 'recipes',
'posts_per_page' => 3,
'tax_query' => array(
array(
'taxonomy' => 'recipe_category',
'field' => 'slug', //can be set to ID
'terms' => $recipe_cat_slug //if field is ID you can reference by cat/term number; you can also pass multiple cat as => array('sauce', 'spicy')
)
)
);
$loop = new WP_Query($args);
希望这有帮助!