【发布时间】:2014-02-03 13:06:08
【问题描述】:
我已经在 StackOverflow 上搜索了这个,但没有解决方案......
我正在尝试显示分配给我创建的 post_type 的特定类别的所有帖子。该类别的帖子列表(由其标题、描述、图片等组成)将显示在特定类别的模板页面中。
澄清一下...我有一个名为“mch_room”的 post_type。我为它创建了 3 个类别,分别是客厅、卧室和浴室。这些类别中的每一个都有自己的模板页面。在每个类别页面中,我只想显示与该类别相关的所有帖子的卷。所以 category-31.php(即客厅的分类模板页面)会展示分配给“客厅”分类的所有帖子,显示每个帖子的文字、特色图片等。
我已经非常接近让这个工作,但不是显示特定类别的所有帖子,而是显示所有类别的所有帖子;即使在声明了特定类别之后。
这是我的代码:
Category-31.php的代码,即“客厅”类别的模板页面
<?php
$args = array(
'post_type' => 'mch_room',
'categories'=> 'living-room');
$my_query = new WP_Query( $args );
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_field('room_name'); ?></a></p>
<p><?php the_field('room_description'); ?></p><?php
endwhile;
}
wp_reset_query();
?>
function.php 的代码,我在这里注册了 post_type "mch_room" 和分类法 "category"
add_action('init','add_categories_to_cpt');
function add_categories_to_cpt(){
register_taxonomy_for_object_type('category', 'mch_room');
}
add_action( 'init', 'create_post_type' );
function create_post_type() {
register_post_type( 'mch_room',
array(
'labels' => array(
'name' => __( 'Rooms' ),
'singular_name' => __( 'Room' )
),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'rooms'),
'hierarchical' => false,
'menu_position' => 2,
'taxonomies' => array( 'post_tag', "category"),
)
);
}
我不明白..我做错了什么?当我专门要求仅展示“客厅”类别的帖子时,为什么要展示整个“mch_room”中的所有帖子?
有什么我可以做的吗?非常感谢您的回复,谢谢。
【问题讨论】:
-
你在找这个插件wordpress.org/plugins/list-category-posts你可以去看看它的源码看看。