2012-05-08 217 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 

?> 
相關問題