有人能帮我解决这个问题吗?因为我是PHP新手。
我有一个包含分类和术语的自定义类别: ie主图库(自定义类别)-图库一(分类1) -专辑一(术语1) -专辑二(术语2) -图库二(分类1)
我想要显示所有的帖子,在专辑1(条款1)。
到目前为止,我有这样的代码: slug名称打印在前端,但没有用于返回帖子,是这样吗?
'terms' => array_shift( $terms ) ??
如果我在数组中指定了术语名称,我可以让它工作,但我需要它从页面段中读取。
如上所述,我是PHP的新手,可能在某个地方结构错误,做了一些扰乱循环的事情或诸如此类的事情。非常感谢您的帮助。
代码:
<?php
$terms = get_the_terms( $post->ID, 'pubgal' ); // get the term $term = array_shift( $terms );
echo $term->slug;
$args = array(
'tax_query' => array(
array(
'taxonomy' => 'pubgal',
'field' => 'slug',
'terms' => array_shift( $terms )
),
),
'post_type' => 'gallery'
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
$term = $query->queried_object;
while ( $query->have_posts() ) :
$query->the_post();
the_title();
the_content();
the_post_thumbnail();
endwhile;
}
//RESET YOUR QUERY VARS
wp_reset_query();
?> 发布于 2016-11-07 17:53:46
您需要遍历$terms来获取术语,因为您在term_id ()中有fields='all' (如果您输入term id,那么get_terms()中的fields='all'是默认值,您将通过$term->term_id获得它)
如果你放入fields='ids,你将能够直接用$terms请求tax_query (如果需要,也可以用array_shift )。
https://stackoverflow.com/questions/40457970
复制相似问题