Fügen Sie den WooCommerce-Produkttyp zum Body-Class-Array hinzu

Lesezeit: 2 Minuten

Ich versuche, Woocommerce-Produkttypen zum Klassenarray von WordPress-Body-Tags hinzuzufügen, das in header.php mit aufgerufen wird

body_class();

Ich habe die folgende Funktion in functions.php, aber sie fügt die Klasse nicht hinzu. Wenn ich die Bedingung entferne und einfach habe

$classes[] = 'simple-product';

Dann wird die Klasse hinzugefügt. Ich gehe davon aus, dass dies mit einem Problem zu tun hat, das globale Werte erhält. Ich rufe $woocommerce, $post und $product globals an, da ich nicht sicher bin, welche ich tatsächlich brauche.

//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;
}

Vielen Dank

Hast du es versucht var_dump($product) um zu sehen, was (wenn überhaupt) in diesem Objekt vorhanden ist?

Laut dem Kodexmüssen Sie es möglicherweise selbst mit ausfüllen $post->IDso:

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

  • Vielleicht kann der Klassenname dynamischer sein? Anstatt von : if ( $product->product_type == 'simple' ) $classes[] = 'simple-product'; – Eher: $classes[] = $product->product_type.'-product';?

    – Scottdurban

    18. Januar 2019 um 8:05 Uhr


Fügen Sie auf der Woocommerce-Seite den Namen des Produkttyps in das Body-Tag Ihrer Website ein. Zuerst müssen Sie diese Seite zu einer Produktseite machen.

Wenn Sie mit get_product() arbeiten, funktioniert Ihre Seite mit der Woocommerce-Funktionalität.

Dies ist ein Code zum Hinzufügen aller product_type-Namen, die im Body-Tag hinzugefügt wurden.

Fügen Sie diesen Code in Ihren aktivierten Themenordner ein: 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;
}

1434980cookie-checkFügen Sie den WooCommerce-Produkttyp zum Body-Class-Array hinzu

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy