2013-09-26 39 views
0

我需要在存档页面中添加一个分类dropdwon过滤器,以便我可以显示分配给所选分类的帖子。在存档页面上添加一个DropDown分类过滤器

下面是分类的HTML输出:

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
    <select name="services" id="selectservice" class="postform" onchange="submit();"> 
    <option value="">Select Service</option> 
    <option value="intensive-support">Intensive Support</option> 
    <option value="recovery-work">Recovery Work</option> 
    <option value="tenant-support">Tenant Support</option> 
    </select> 
</form> 

下面是查询代码:

<table class="dataTable"> 
    <tr> 
     <th>Name</th> 
     <th>Location</th> 
     <th>Website</th> 
     <th>Service(s)</th> 
    </tr> 
    <?php $service_query = new WP_Query('post_type=ptype_service&posts_per_page=-1'); ?> 
    <?php $j = 0 ?> 
    <?php while ($service_query->have_posts()) : $service_query->the_post(); ?> 
    <?php $additional_class = (++$j % 2 == 0) ? 'even' : 'odd'; ?> 
    <tr class="<?php echo $additional_class ?>"> 
     <td><?php the_title()?></td> 
     <td><?php echo (get_post_meta($post->ID, 'pir_groups_location', true))?></td> 
     <td><a target="_blank" href="http://<?php echo (get_post_meta($post->ID, 'pir_groups_website', true))?>"><?php echo (get_post_meta($post->ID, 'pir_groups_website', true))?></a></td> 
     <td> 
     <?php 
     $terms = get_the_terms($post->ID, 'services'); 
     if ($terms && ! is_wp_error($terms)) :  
      $services_links = array(); 
      foreach ($terms as $term) { 
       $services_links[] = $term->name; 
      }        
      $on_draught = join(", ", $services_links); 
     ?> 
     <?php echo $on_draught; ?> 
     <?php endif; ?> 
     </td> 
    </tr> 
    <?php endwhile; ?> 
    </table> 

问候

回答

0

找到解决自己:)

只是改变了形式行动和现在的工作很好:

<form method="post" action="<?php the_permalink()?>"> 
    <select name="services" id="selectservice" class="postform" onchange="submit();"> 
    <option value="">All Services</option> 
    <?php 
     $terms = get_terms('services'); 
      if ($terms) { 
       foreach ($terms as $term) {?> 
    <option <?php if($term->slug == $_POST['services']){ echo 'selected="selected"';} ?> value="<?php echo esc_attr($term->slug)?>"><?php echo esc_html($term->name) ?></option> 
    <?php } 
      } 
    ?> 
    </select> 
</form> 
相关问题