我有一个自定义的帖子类型名称“resources”,还有一个名为“type”的分类法,其中有很多术语。我不想为每个术语(如分类法类型{term})创建自定义模板。php每次我添加新术语。
我想在这里实现的是一个单独的页面,在这里可以检查每个条款。如果当前术语为“24622”,则显示内容等,但我希望它是动态的,因此我不希望每次创建新术语时都输入术语ID。
到目前为止,我使用的适用于单个术语的代码是:
<?php
$args = array (
\'post_type\' => \'resources\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'type\',
\'field\' => \'id\',
\'terms\' => 24622 //I WANT IT DYNAMIC
)
)
);
$loop = new WP_Query($args);
if($loop->have_posts()) {
$term = $wp_query->queried_object;
while($loop->have_posts()) : $loop->the_post();
//Output what you want
echo \'<li><a href="\'.get_permalink().\'">\'.get_the_title().\'</a></li>\';
endwhile;
}
?>
请帮忙。谢谢
UPDATE
这是目前有效的代码,但它获取帖子的顺序错误。
// get all terms used by current post for specific category
$terms = get_the_terms(get_the_ID() , \'type\');
// if $terms is array convert array of term objects to array of term IDs
if(is_array($terms)){
$term_ids = wp_list_pluck($terms, \'term_id\');
foreach($terms as $term) {
$post_ids[] = $term->term_id;
}
// proceed with tax query
$args = array(
\'post_type\' => \'resources\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'type\',
\'field\' => \'id\',
\'terms\' => $term->term_id
)
)
);
$loop = new WP_Query($args);
if ($loop->have_posts()) {
$term = $wp_query->queried_object;
while ($loop->have_posts()):
$loop->the_post();
// Output what you want
echo \'<li><a href="\' . get_permalink() . \'">\' . get_the_title() . \'</a></li>\';
endwhile;
}
wp_reset_postdata();
}
如果我点击“案例研究(2)”,它应该显示2篇文章,但显示1篇文章。在“宣传地图(1)”中,显示了2个帖子。
职位1与“案例研究”和“宣传地图”相关
职位2与“案例研究”和“土地监测报告”相关