查询另一个帖子类别以匹配当前帖子并循环显示

时间:2017-04-25 作者:Tracy

我试图查询一个自定义帖子类型的类别以显示在另一个自定义帖子类型中,但前提是它们具有匹配的类别。

我刚刚开始编写一个相当复杂的WordPress网站(很有趣)-我想我可能键入的查询错误-任何帮助都将不胜感激。

    <section id="meet-team">

    <div class="container">

        <h2>Title will be custom field</h2>
        <p class="lead">custom field text will be in here</p>

    <div class="row">

       <?php $category = get_category( get_query_var( \'cat\' ) );
$类别id=$类别->类别id;?>

      <?php get_posts($args =array(
                           \'posts_per_page\' => 2, 
                           \'post_type\' => \'team\', 
                           \'category\' =>$cat_ID)  ); ?> <!-- this is the bit I think I am struggling with -->


     <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>


<div class="col-6">

    <?php if ( has_post_thumbnail()) { $url = wp_get_attachment_url( get_post_thumbnail_id() ); ?>

    <img src="<?php echo $url; ?>" alt="<?php the_title() ?>">

                <h3><?php the_title() ?></h3>
                <p><?php the_excerpt() ?></p>
                <a href="<?php the_permalink() ?>"></a> 


</div><!-- col -->



         <?php } ?>

        <?php endwhile; endif; ?>

        </div><!-- row -->

    </div><!-- container -->
</section><!-- meet-team -->

<?php wp_reset_query(); ?>

2 个回复
最合适的回答,由SO网友:Michael 整理而成

如果要将自定义查询添加到单个模板中,请尝试使用get_the_category() 获取用于查询的cat\\U id;而且get_posts() 不适用于if( have_posts() )

使用自定义查询的示例代码:

   <?php 
   $cat = get_the_category();

   $cat_id = $cat[0]->term_ID; 

   $cpt_match_query = new WP_Query( array(
         \'posts_per_page\' => 2, 
         \'post_type\' => \'team\', 
         \'cat\' => $cat_id) ); 

  if ( $cpt_match_query->have_posts() ) : 
    while ( $cpt_match_query->have_posts() ) : 
    $cpt_match_query->the_post(); 
  ?>

    YOUR OUTPUT SECTION

  <?php 
    endwhile;
  endif; 
  wp_reset_postdata();
  ?>
上面没有考虑代码中的html标记,这也需要重新调整。

SO网友:jdm2112

根据您发布的代码,您的变量不匹配$cat_id. 在第一个实例中,如果指定了一个值,则该值都是小写的:

$cat_id = $category->cat_ID;
在查询参数中,您已将ID部分大写:

\'category\' => $cat_ID  <-- does not match your earlier var

相关推荐

get_posts custom field

这是一个愚蠢的问题,但我找不到合适的方式问谷歌。所以,如果这是一个重复的问题,很抱歉。我提供了一个带有复选框的自定义字段,用户可以检查是否希望此特定帖子进入主页。因此,在我的主页上,我呼吁所有已激活选中的帖子。我正在为自定义帖子类型CV创建自定义字段:function add_custom_post_meta_box() { add_meta_box( \'custom_post_meta_box\', // $id \'Campos Per