在同一页面中使用多个自定义帖子

时间:2013-07-17 13:16:01

标签: wordpress

我有关于创建两个自定义帖子类型的问题,第一个已经存在的是“post”,第二个“Product”我使用此代码创建了它:

add_action( 'init', 'create_post_type' );
function create_post_type() {
register_post_type( 'product',
array(
  'labels' => array(
    'name' => __( 'Product' ),
    'singular_name' => __( 'Product' )
  ),
  'public' => true ,  
  'supports' => array( 'title', 'editor', 'thumbnail')
)
);

 register_taxonomy( 'couleur', 'product', array( 'hierarchical' => true, 'label' =>    'Couleur', 'query_var' => true, 'rewrite' => true ) );
}
 add_filter( 'pre_get_posts', 'my_get_posts' );

function my_get_posts( $query ) {
if ( is_home() )
$query->set( 'post_type', array( 'product' ) );

return $query;
}

问题是当我从数据库中为他们两者提取帖子时,这意味着我在同一页面“index.php”中显示“post”和“product”,问题是页面中只有一个显示而不是他们两个:

product show => post(default) => hide 
post(default) hide => product show 

1 个答案:

答案 0 :(得分:1)

functions.php文件

中添加此内容
add_filter( 'pre_get_posts', 'my_get_posts' );
function my_get_posts( $query ) {
    if ( is_home() && $query->is_main_query() ) {
        $query->set( 'post_type', array( 'post', 'product' ) );
    }
    return $query;
}

同样提到$query->set('post_type', 'any'); here但从未尝试过。也请检查this