Wordpress自定义帖子类型和类别,在index.php中查询时未显示自定义帖子类型的帖子

时间:2013-12-23 12:39:39

标签: php wordpress wordpress-theming custom-post-type

我的wordpress主题中有一组自定义帖子类型,以及一个名为Home的类别,用于显示我希望在主index.php模板页面上所有帖子类型的特定帖子。 我正在做的是在我的functions.php -

中添加这样的自定义帖子类型
function livingroom_post_type() {

$labels = array(
    'name'                => _x( 'livingrooms', 'Post Type General Name', 'text_domain' ),
    'singular_name'       => _x( 'livingroom', 'Post Type Singular Name', 'text_domain' ),
    'menu_name'           => __( 'livingroom', 'text_domain' ),
    'parent_item_colon'   => __( 'Parent livingroom:', 'text_domain' ),
    'all_items'           => __( 'All livingrooms', 'text_domain' ),
    'view_item'           => __( 'View livingroom', 'text_domain' ),
    'add_new_item'        => __( 'Add New livingroom', 'text_domain' ),
    'add_new'             => __( 'New livingroom', 'text_domain' ),
    'edit_item'           => __( 'Edit livingroom', 'text_domain' ),
    'update_item'         => __( 'Update livingroom', 'text_domain' ),
    'search_items'        => __( 'Search livingrooms', 'text_domain' ),
    'not_found'           => __( 'No livingrooms found', 'text_domain' ),
    'not_found_in_trash'  => __( 'No livingrooms found in Trash', 'text_domain' ),
);
$args = array(
    'label'               => __( 'livingroom', 'text_domain' ),
    'description'         => __( 'livingroom information pages', 'text_domain' ),
    'labels'              => $labels,
    'supports'            => array('title','editor','author','excerpt','custom-fields','thumbnail'),
    'hierarchical'        => false,
    'public'              => true,
    'show_ui'             => true,
    'show_in_menu'        => true,
    'show_in_nav_menus'   => true,
    'show_in_admin_bar'   => true,
    'menu_position'       => 5,
    'can_export'          => true,
    'has_archive'         => true,
    'exclude_from_search' => false,
    'publicly_queryable'  => true,
    'capability_type'     => 'post',
    'taxonomies' => array('category', 'post_tag'),          
);
register_post_type( 'livingroom', $args );

}
add_action( 'init', 'room_post_type' );

然后在room.php(模板文件)中查询我的帖子,如 -

$args = array( 'post_type' => array('bathroom') );
$loop = new WP_Query( $args );

工作正常。但是在我的管理面板中,我在Home类别中添加了这篇文章并尝试在主index.php页面中显示它 -

$args = array( 'category__in' => array(get_cat_ID('Home')) );
$loop = new WP_Query( $args );

它没有显示出来。此外,如果我在帖子中创建帖子 - >添加新的而不是房间 - >添加新,同样的工作正常。 我做了一些谷歌告诉我在functions.php中添加分类到post类型,但显然不起作用,所以任何建议我如何让它工作。

1 个答案:

答案 0 :(得分:0)

尝试在index.php上使用它:

$args = array(
  'post_type' => array( 'post', 'livingroom' ), 
  'category__in' => array(get_cat_ID('Home')) 
);
$loop = new WP_Query( $args );

在'post_type'数组列表中列出要在主页上显示的所有帖子类型。