2012-05-08 172 views
1

对不起,长题目标题。我试图准确。WordPress - 通过自定义帖子类型和类别获取帖子,每个类别自动包含在DIV中

我需要设计一个WordPress查询,该查询将自动从某个自定义帖子类型中获取帖子,检测每个帖子如何分类,然后按类别将其输出到页面上,每个类别都包含在自己的DIV中。

例如,我有一个称为“Map Data”的自定义帖子类型。在这个自定义文章类型中,我有一个我已经命名为“类别”的分类学标准,并在该分类标准中包含了许多类别,“类别#1”,“类别#2”等等。每个类别都有一些帖子。

因此,查询应自定义职位类型中得到的所有类别的清单,然后输出是这样的:

<div id="category-1"> 
    <div class="post">This is a post in Category 1</div> 
    <div class="post">This is another post in Category 1</div> 
</div> 
<div id="category-2"> 
    <div class="post">This is a post in Category 1</div> 
    <div class="post">This is another post in Category 1</div> 
</div> 

我有以下的代码与WordPress默认分类系统的工作原理但是,我需要重新编写它,或者更新它,以便它可以使用自定义的帖子类型及其分类法。

<?php 
    $cat_args=array(); 
    $categories=get_categories($cat_args); 
    foreach($categories as $category) { 
     $args=array(
      'category__in' => array($category->term_id), 
     ); 
    $posts=get_posts($args); 
     if ($posts) { 
      echo '<div class="cat" id="' . $category->slug.'" name="' . $category->name.'">'; 
      foreach($posts as $post) { 
      setup_postdata($post); 
?> 

<?php the_title();?> 
<?php the_content();?> 

<?php 
     } // foreach($posts 
     echo '</div>'; 
     } // if ($posts 
    } // foreach($categories 
?> 

如果任何人都可以提供更新的代码供我尝试或作为例子,它将非常感激。

+1

你真的很漂亮已近什么!这是以前提交的答案:http://stackoverflow.com/questions/8643508/how-to-group-articles-by-tags/8645453#8645453 – CookiesForDevo

回答

6

我这样做是得到所有分类标准,但它可以很容易地进行修改,以积极的尝试

// for a given post type, return all 
$post_type = 'shows'; 
$tax = 'show-topic'; 
$tax_terms = get_terms($tax, array('orderby' => 'id', 'order' => 'ASC', 'exclude' => '135, 49, 25, 24, 54')); 
if ($tax_terms) { 
    foreach ($tax_terms as $tax_term) { 
     $args = array(
      'post_type' => $post_type, 
      "$tax" => $tax_term->slug, 
      'post_status' => 'publish', 
      'posts_per_page' => - 1, 
      'orderby' => 'title', 
      'order' => 'ASC', 
      'caller_get_posts' => 1 
      ); // END $args 
     $my_query = null; 
     $my_query = new WP_Query($args); 
     if ($my_query->have_posts()) { 
      echo '<h3>' . $tax_term->name . '</h3>'; 
      while ($my_query->have_posts()) : $my_query->the_post(); 
      ?> 
      <div class="post row" id="post-<?php the_ID(); ?>"> 
        <div class="thumb-box three column"> 
         <?php 
      $src = wp_get_attachment_image_src(get_post_thumbnail_id()); 
      if (has_post_thumbnail()) { 
       the_post_thumbnail(); 
      } else { 
       if (get_post_meta($post->ID, "thumbnail", true)): 
        ?> 
           <a href="<?php the_permalink() ?>" rel="bookmark"><img src="<?php echo get_post_meta($post->ID, "thumbnail", true); ?>" alt="<?php the_title(); ?>" /></a> 
          <?php else: ?> 
           <a href="<?php the_permalink() ?>" rel="bookmark"><img src="<?php bloginfo('stylesheet_directory'); ?>/images/insp-tv-small.png" alt="<?php the_title(); ?>" /></a> 
          <?php endif; 
      } 
      ?> 
        </div> 
        <div class="post-content nine columns"> 
         <h4 class="posttitle archiveposttitle"> 
          <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php _e('Permanent Link to', 'buddypress') ?> <?php the_title_attribute(); ?>"><?php the_title(); ?></a> 
         </h4> 
         <div class="entry"> 
          <?php the_excerpt(); ?> 
         </div> 
        </div> 
       </div> 
      <?php 
      endwhile; 
     } // END if have_posts loop 
     wp_reset_query(); 
    } // END foreach $tax_terms 
} // END if $tax_terms 

?> 
相关问题