1

2 つのカスタム投稿タイプを作成することについて質問があります。最初の投稿タイプは既に存在し、次のコードを使用して作成した「投稿」と 2 番目の「商品」です。

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」に表示します。問題は、両方ではなくページに 1 つだけ表示されることです。

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 に答える