2017-01-03 74 views
0

我想通過簡碼顯示來自多個類別的所有帖子。如果我在短代碼屬性中使用一個類別,它將起作用。顯示來自多個陣列的自定義帖子

<?php echo do_shortcode('[people cat_name="lab-members"]'); ?> 

但是,當我在shortcode屬性中使用兩個或三個類別它不起作用。

<?php echo do_shortcode('[people cat_name="lab-members, advisors"]'); ?> 

這裏是我想要

function mmddl_people_shortcode($atts) 
{ 
    // define attributes and their defaults 
    extract(shortcode_atts(array (
           'cat_name' => '' 
          ), $atts)); 

    $args = array (
     'post_type' => 'people', 
     'tax_query' => array (
      array (
       'taxonomy' => 'people_category', 
       'field' => 'slug', 
       'terms' => $cat_name 
      ), 
     ), 
    ); 

    // get the arguments 
    $loop = new WP_Query($args); 
    // the loop 
    while ($loop->have_posts()) : $loop->the_post(); ?> 

     <!-- team member --> 
     <div id="people-<?php the_ID() ?>" <?php post_class('col-sm-6 col-md-3 wow fadeInUp'); ?> > 
      <div class="team-mate"> 
       <h4><?php the_title(); ?></h4> 
       <figure class="member-photo"> 
        <!-- member photo --> 
        <?php 
        if (has_post_thumbnail()) { 
         the_post_thumbnail('full', array ('class' => 'img-responsive')); 
        } else { 
         echo '<img src="http://placehold.it/450x450" alt="' . get_the_title() . '" class="img-responsive">'; 
        } 
        ?> 
       </figure> 
      </div> 
     </div> 
     <!-- // team member --> 

    <?php endwhile; 
} 

add_shortcode('people', 'mmddl_people_shortcode'); 

回答

1

要在稅務查詢傳遞多個方面,你需要指定一個數組。退房the docs

例如,你的情況:

$terms = array_map('trim', explode(',', $cat_name)) 

這就是你傳遞什麼作爲terms參數。

我將結果數組通過「trim」傳遞,因此您可以在逗號周圍使用空格(或不使用)來指定術語。

+0

謝謝他的作品:) –

相關問題