当前我创建一个查询来显示所有自定义帖子类型类别及其帖子。但它不起作用,你能告诉我这段代码的问题是什么吗?
<?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
?>
答案 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();
}
?>