2

私のテーマには 3 つのヘッダーがあり、デフォルトのテンプレートをオーバーライドするテンプレートを使用して、自分のテーマでショップのテーマを設定しています。

私はheader.phpにこれを持っています

ヘッダー 1: 私のホーム サイト用 (ショップではない)

ヘッダー 2: サイトのすべてのページ (ショップではない)

ヘッダー 3: ショップ用 (商品カテゴリ、単品商品、アーカイブ商品)

しかし、製品を購入すると、チェックアウト ページ (登録、カート、マイ アカウントなど) に移動すると、ヘッダー 2 が表示されます。

簡略化された header.php コード:

if(!is_woocommerce()) {
   <!--Header Wordpress-->
   if(is_home);
      Home site header (Header 1)
   } else {
      All site header (except Home) (Header 2)
   <!--End Header Wordpress-->
} else { // Woocommerce conditional
   Shop header (Header 3)
}

それを解決する方法は?

4

1 に答える 1

3

カートとチェックアウトは短いコードを持つ標準ページであり、他の Woo テンプレートには含まれていません。つまりis_woocommerce()、それらに対して true を返しません。だから多分使う

if ( is_page( 'checkout-page-slug' ) || is_page( 'other_shop_page' ) ) {

代わりにそれらをターゲットにします。


編集:

checkout-page-slugorother_shop_pageを、ショップのヘッダーをターゲットにしたいページのスラッグに置き換えます。

if ( ! is_woocommerce() ) {
    if ( is_home() ) {
        // Home site header (Header 1)
    } elseif( is_page( 'checkout-page-slug' ) || is_page( 'other_shop_page' ) ) {
        // Shop header
    } else {
       // All site header (except Home) (Header 2)
    }
} else { // Woocommerce conditional
    // Shop header
}
于 2012-10-31T19:51:29.003 に答える