1

我对创建两个自定义帖子类型有疑问,第一个已经存在是“帖子”,第二个“产品”是我使用此代码创建的:

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”中显示“帖子”和“产品”,问题是页面中只有一个显示,而不是两者:

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

1 回答 1

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');提到了,但从未尝试过。也检查一下

于 2013-07-17T15:30:05.767 回答