it-swarm.com.de

(WooCommerce) Entfernen Sie die Seitenleiste nur auf der Einzelproduktseite

Ich erstelle ein Thema und möchte die Seitenleiste nicht auf der Seite eines einzelnen Produkts anzeigen.

Gemäß den Empfehlungen von WooCommerce habe ich eine Kopie des Ordners " templates " (unter dem Woocommerce-Plugin) erstellt und auf mytheme/templates installiert. Den Ordnernamen habe ich in " woocommerce " geändert. Im Stammverzeichnis meines Themas habe ich eine Datei mit dem Namen sidebar-shop.php erstellt.

Inzwischen habe ich die Seitenleiste auf der Shop-Seite und auf der Einzelproduktseite angezeigt. Ich habe versucht, do_action('woocommerce_sidebar'); aus woocommerce/single-product.php zu entfernen und auch versucht, eine Bedingung für woocomerce/shop/sidebar.php zu erstellen.

if (!is_page('single-product') { 
    get_sidebar('shop'); 
}

die Seitenleiste bleibt jedoch erhalten.

Gibt es eine funktionierende Option, um nur die einzelne Produktseitenleiste zu entfernen?

1
Rico Letterman

Das bedingte Tag für einzelne Produkte ist is_product ()

add_action('template_redirect', 'remove_sidebar_shop');
function remove_sidebar_shop() {
if ( is_product('add-page-i.d-here') ) {
    remove_action('woocommerce_sidebar', 'woocommerce_get_sidebar');
    }
}

Möglicherweise möchten Sie auch das Layout auf dieser Produktseite auf die volle Breite ändern, um die Lücke zu entfernen und die Breite des Inhaltsbereichs mithilfe einer benutzerdefinierten Body-Klasse zu verringern, die Sie auch bedingt generieren können.

Bedingte Tags für Woo Commerce http://docs.woothemes.com/document/conditional-tags/

1
Brad Dalton

Hier kommt's..

function remove_sidebar_shop() {
    if ( is_singular('product') ) {
        remove_action('woocommerce_sidebar', 'woocommerce_get_sidebar');
    }
}
add_action('template_redirect', 'remove_sidebar_shop');
0
Abhik
function remove_storefront_sidebar() {
    if ( is_product() ) {
    remove_action( 'storefront_sidebar', 'storefront_get_sidebar', 10 );
    }
}
add_action( 'get_header', 'remove_storefront_sidebar' );

Es funktioniert mit dem neuesten Woocommerce 2.5.2. Außerdem wird CSS benötigt:

.single-product.right-sidebar .content-area {
  float: none;
  margin-right: 0;
  width: 100%;
}
0
Iggy