Support » WooCommerce » Element „woocommerce_brand_detail“ wird doppelt angezeigt

  • Um meine Seite besser bei Google zu ranken, möchte ich SEO alles raus holen was geht. Dazu möchte ich bei jeder Marke die Markenbeschreibung unter der Produktliste „woocommerce_after_shop_loop“ anzeigen lassen.

    Dafür habe ich mir nun folgendes gebastelt:

    add_action( 'woocommerce_after_shop_loop' , 'woocommerce_brand_detail', 10 );
    
    function woocommerce_brand_detail() {
    
        global $post;
    
        $brands = wp_get_post_terms( $post->ID, 'product_brand', array("fields" => "all") );
    
        foreach( $brands as $brand ) {
            echo __( 'Hersteller / Markenbeschreibung', '') . ': ' . term_description( $brand->term_id, 'product_brand' );
        }
    
    }

    Jedoch wird es auf der Seite dann doppelt angezeigt. Genau 2x untereinander. Ich finde das Problem leider nicht. Kann mir jemand sagen, wo der Fehler liegt, dass es 2x angezeigt wird?

    Liebe Grüße

    • Dieses Thema wurde geändert vor 3 Wochen, 3 Tage von exoryhd.

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
  • Hallo,
    sorry, aber das ist eher etwas für ein Forum wie z. B. https://wordpress.stackexchange.com/
    Hier befassen wir uns mehr mit Anwenderproblemen bei Nutzung von WordPress.

    Viele Grüße
    Hans-Gerd

    Was gibt denn ein var_dump($brands) aus?

    Noch ein Hinweis:

    echo __( 'Hersteller / Markenbeschreibung', '') . ': ' …

    ist ein wenig Unfug, weil __( … ) eine Übersetzungsfunktion ist, in die du einen bereits übersetzten Textstring eingefügt hast. Ersetze das durch

    echo 'Hersteller/Markenbeschreibung: ' . …

    Ansonsten hat Hans-Gerd völlig Recht: wir möchten hier Anwendungssupport anbieten. Für Programmierung bist du bei WordPress Stackexchange besser aufgehoben.

    Moderator espiat

    (@espiat)

    wie ich sehe, hast du das korrigiert.

    du musst erstmal prüfen ob auch ein brand vorhanden ist.

    korrigiert:

    add_action( 'woocommerce_after_shop_loop' , 'woocommerce_brand_detail', 10 );
    
    function woocommerce_brand_detail() {
        global $product;
        $terms = get_the_terms( $product->get_id(), 'product_brand' );
        if( !empty( $terms ) ) {
            $term = array_shift( $terms );
            echo '<div class="product-brand">';
            echo '<h3>' . __( 'Hersteller / Markenbeschreibung', 'text-domain' ) . ':</h3>';
            echo '<p>' . $term->description . '</p>';
            echo '</div>';
        }
    }
Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)