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->ID
so:
//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;
}
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;
}
14349800cookie-checkFügen Sie den WooCommerce-Produkttyp zum Body-Class-Array hinzuyes