如何获取所有类别的所有帖子自定义帖子类型?

时间:2013-07-01 15:36:01

标签: php wordpress

当前我创建一个查询来显示所有自定义帖子类型类别及其帖子。但它不起作用,你能告诉我这段代码的问题是什么吗?

<?php
        //for each category, show all posts
        $cat_args=array(
          'orderby' => 'name',
          'order' => 'ASC',
           );
        $categories=wp_list_categories($cat_args);
          foreach($categories as $category) {
            $args=array(
              'showposts' => -1,
              'category__in' => array($category->term_id),
              'caller_get_posts'=>1
            );
            $posts=get_posts($args);
              if ($posts) {
                echo '<p>Category: <a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> </p> ';
                foreach($posts as $post) {
                  setup_postdata($post); ?>

    <p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>">
  <?php the_title(); ?>
  </a></p>
    <?php
                } // foreach($posts
              } // if ($posts
            } // foreach($categories
        ?>

1 个答案:

答案 0 :(得分:3)

使用类似的东西。

这里我的帖子类型是“post-type-name”,分类是“taxonomy-name”

<?php
    $cat_args = array (
      'taxonomy' => 'taxonomy-name',
    );
    $categories = get_categories ( $cat_args );
    foreach ( $categories as $category ) {
      $cat_query = null;
      $args = array (
        'post_type' => 'post-type-name',
        'taxonomy-name' => $category->slug
      );
      $cat_query = new WP_Query( $args );
      if ( $cat_query->have_posts() ) {
      echo "<h5>". $category->name ."</h5>";
      echo "<ul>";
        while ( $cat_query->have_posts() ) {
          $cat_query->the_post();
          ?>
            <li>
              <?php the_title(); ?>
              <?php the_content(); ?>
            </li>
          <?php
        }
      echo "</ul>";
      }
      wp_reset_postdata();
    }
?>