2014-12-30 54 views
0

我在我的一個模板上使用同位素。我使用自定義查詢短代碼來動態化它。如何從自定義查詢短代碼中排除類別?

代碼如下。

function saints_shortcode($atts){ 
     extract(shortcode_atts(array(
       'category' => '' 
     ), $atts, 'saints')); 

    $q = new WP_Query(
     array('posts_per_page' => '-1', 'post_type' => 'saints_list', 'order' => 'ASC') 
     );    

//saint taxanomy query 
     $args = array(
       'post_type' => 'saints_list', 
       'order' => 'ASC', 
       'paged' => $paged, 
       'posts_per_page' => $data['saint_items'], 
     ); 

     $saint = new WP_Query($args); 
     if(is_array($saint->posts) && !empty($saint->posts)) { 
       foreach($saint->posts as $gallery_post) { 
         $post_taxs = wp_get_post_terms($gallery_post->ID, 'saint_category', array("fields" => "all")); 
         if(is_array($post_taxs) && !empty($post_taxs)) { 
           foreach($post_taxs as $post_tax) { 
             $saint_taxs[$post_tax->slug] = $post_tax->name; 
           } 
         } 
       } 
     } 
     if(is_array($saint_taxs) && !empty($saint_taxs) && get_post_meta($post->ID, 'pyre_saint_filters', true) != 'no'): 
?> 
       <div class="remove-ext"> 
        <section id="options"> 
         <div class="option-combo"> 
          <ul id="filter" class="option-set" data-option-key="filter"> 
           <li><a href="#show-all" data-option-value="*" class="selected">show all</a></li> 
           <?php foreach($saint_taxs as $saint_tax_slug => $saint_tax_name): ?> 
           <li><a href="#" data-option-value=".<?php echo $saint_tax_slug; ?>"><?php echo $saint_tax_name; ?></a></li> 
           <?php endforeach; ?> 
          </ul> 
         </div> 
        </section> 
       <?php endif; ?> 

<?php 

     $list = '    
     <div class="masonary-product">'; 
     while($q->have_posts()) : $q->the_post(); 
       $idd = get_the_ID(); 
       $saint_subtitle = get_post_meta($idd, 'saint_subtitle', true); 
       $filterr = get_post_meta($idd, 'filterr', true); 
       $small_image_url = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'saint-image_small'); 

       //Get Taxonomy class 

       $item_classes = ''; 
       $item_cats = get_the_terms($post->ID, 'saint_category'); 
       if($item_cats): 
       foreach($item_cats as $item_cat) { 
         $item_classes .= $item_cat->slug . ' '; 
       } 
       endif; 


       $list .= ' 
       <div class="col-md-3 '.$item_classes.'"> 
        <div class="member"> 
         <div class="team"> 
          <div class="team-img"> 
           <img src="'.$small_image_url[0].'" alt="" /> 
          </div> 
          <div class="member-detail"> 
           <h3><a href="'.get_permalink().'" title="">'.get_the_title().'</a></h3> 
           <p>'.substr(get_the_excerpt(), 0,100).'</p> 
          </div> 
         </div> 
        </div><!-- MEMBER --> 
       </div> 

       ';   
     endwhile; 
     $list.= '</div></div>'; 
     wp_reset_query(); 
     return $list; 
} 
add_shortcode('saints', 'saints_shortcode'); 

其工作得很好。

現在我想排除像'行政成員'類別。我試圖排除,但它不工作。我如何排除我想要的任何類別。

任何人都可以幫助我。

TIA

回答

0

試試用此代碼。

$q = new WP_Query(array('posts_per_page' => '-1', 'post_type' => 'saints_list', 'order' => 'ASC','category__not_in' =>'Executive Member')); 

$args = array(
      'post_type' => 'saints_list', 
      'order' => 'ASC', 
      'paged' => $paged, 
      'posts_per_page' => $data['saint_items'], 
      'category__not_in' =>'Executive Member', 

    ); 
+0

嘿老兄感謝對此事發表評論。但這不起作用。我不知道爲什麼。 –

+0

確切的類別名稱想排除什麼? – vel

+0

在替換代碼上面的「執行委員」與「行政成員」 \ – vel

相關問題