2017-01-03 4 views
0

여러 범주의 모든 게시물을 단축 코드로 표시하고 싶습니다. shortcode 속성에 하나의 카테고리를 사용하면 작동합니다.여러 배열의 맞춤 게시물 표시

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

그러나 짧은 코드 속성에서 두 개 또는 세 개의 카테고리를 사용하면 작동하지 않습니다. 여기

<?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

감사합니다. 그 작품 :) –