2

Woocommerce 製品タイプを、header.php で呼び出される Wordpress ボディ タグ クラス配列に追加しようとしています。

body_class();

functions.php に次の関数がありますが、クラスを追加していません。条件を削除して、

$classes[] = 'simple-product';

次に、クラスが追加されます。これは、グローバル値を取得する際の問題に関係していると思います。$woocommerce、$post、および $product グローバルで呼び出しているのは、実際にどれが必要なのかわからないためです。

//Add Woocommerce body classes
add_filter('body_class','ttm_woocommerce_body_classes');
function ttm_woocommerce_body_classes($classes){
    global $woocommerce, $post, $product;
    if ( $product->product_type == 'simple' ) $classes[] = 'simple-product';
    return $classes;
}

ありがとう

4

2 に答える 2

0

woocommerce ページで、ウェブサイトの body タグに product_type 名を追加します。まず、このページを取得する必要があるのは製品ページです。

get_product() を使用すると、ページが woocommerce 機能で動作するようになります。

bodyタグに追加したproduct_type名を全て追加するコードです。

次のコードをアクティブなテーマ フォルダーに追加します: functions.php

 

add_filter('body_class','obw_woocommerce_body_classes');
function obw_woocommerce_body_classes( $classes ) {
    global $woocommerce, $post, $product;
    $product = get_product( $post->ID );
    $product_type = $product->product_type;
    if ( $product->product_type == 'external' ) $classes[] = 'external-product';
    if ( $product->product_type == 'grouped' ) $classes[] = 'grouped-product';
    if ( $product->product_type == 'simple' ) $classes[] = 'simple-product';
    if ( $product->product_type == 'variable' ) $classes[] = 'variable-product';
    return $classes;
}

于 2017-01-13T13:19:57.003 に答える