在单个页面中显示分类中的多个术语帖子

时间:2016-09-09 作者:MightyGas

我有一个自定义的帖子类型名称“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();
}

enter image description here

如果我点击“案例研究(2)”,它应该显示2篇文章,但显示1篇文章。在“宣传地图(1)”中,显示了2个帖子。

职位1与“案例研究”和“宣传地图”相关
职位2与“案例研究”和“土地监测报告”相关

2 个回复
SO网友:MightyGas

感谢您抽出时间回答我的不清楚问题。我找到的代码就是我要找的代码。再次感谢:)

<?php 
//http://codex.wordpress.org/Function_Reference/WP_Query#Taxonomy_Parameters
$term_slug = get_queried_object()->slug;
        if ( !$term_slug )
        return;
        else
$args = array(
    \'tax_query\' => array(
                     array(
                       \'taxonomy\' => \'gallery_category\',
                       \'field\' => \'slug\',
                       \'terms\' => $term_slug,
                       \'posts_per_page\' => 10
                     )
                   )
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); ?>
  <div class="entry-content">
    <?php the_excerpt(); ?>
  </div><!-- .entry-content -->
<?php endwhile; // End the loop. ?>

SO网友:Malisa

您可以尝试以下代码:

// 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\');
// proceed with tax query
$args = array(
    \'post_type\' => \'resources\',
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'type\',
            \'field\' => \'id\',
            \'terms\' => $term_ids
        )
    )
);
$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();
}
这将返回所有任期与当前职位相同的职位。如果可以,可以试着告诉我

相关推荐

ACF Taxonomy in Loop

你好吗我的问题是,我在头版上显示了一些卡片,例如名称和描述,这些信息来自我的分类法event,因为我用ACF创建了一些字段,我想在卡片中打印它们,但我不知道怎么做。下面是我如何打印卡片的代码 <?php if(is_front_page()): $terms = get_terms( [ \'taxonomy\' => \'evento\', \'hide_empty\' =>