Holen Sie sich die Kategorie-URL nach Kategorie-ID in WooCommerce auf der Produktdetailseite

Lesezeit: 2 Minuten

Benutzeravatar von Justin K
Justin K

Ich suche die Kategorie-URL auf der Produktdetailseite. Ich verwende den folgenden Code, um die Kategorie-ID zu erhalten, bin mir aber nicht sicher, wie ich die Kategorie-URL erhalten soll.

<?php
$terms = get_the_terms( $post->ID, 'product_cat' );
foreach ($terms as $term) {
    echo $product_cat_id = $term->term_id;
    break;
}

Benutzeravatar von Bas van Stein
Bas van Stein

Wenn Sie die Produktkategorie haben id Sie können verwenden

$link = get_term_link( $product_cat_id, 'product_cat' );

Um die URL der Produktkategorie zu erhalten.

bearbeiten Stellen Sie sicher, dass die product_cat_id eine Ganzzahl ist, verwenden Sie die folgende Zeile, um vollständig zu speichern:

$link = get_term_link( (int)$product_cat_id, 'product_cat' );

  • Wenn ich diese Zeile in foreach einfügen kann, zeigt sie nichts.

    – Justin K

    10. Dezember 2015 um 15:42 Uhr


  • @JustinK Mein Fehler, ich habe den zweiten Parameter vergessen, get_term_link($term, $taxonomy)

    – Bas van Stein

    10. Dezember 2015 um 15:59 Uhr

  • Es funktioniert, aber wenn dieses Produkt zwei Kategorien hat, werden beide wegen foreach angezeigt. Kann ich nur das erste bekommen?

    – Justin K

    10. Dezember 2015 um 16:10 Uhr

  • Sicher statt foreach benutz einfach $terms[0]. Wenn es funktioniert, können Sie die Antwort markieren oder positiv bewerten, um anderen Benutzern zu zeigen, dass sie geholfen hat.

    – Bas van Stein

    10. Dezember 2015 um 16:25 Uhr


Wenn ein Produkt zu einer oder mehreren Kategorien gehört, können Sie direkt darauf zugreifen $terms[0] Standort und rufen Sie die URL ab

Hier ist der Code:

global $post;
$link = '';
$terms = get_the_terms( $post->ID, 'product_cat' );
if(!empty($terms[0])){
    $link = get_term_link( $terms[0]->term_id, 'product_cat' );
}

Jetzt nur noch prüfen $link leer ist oder nicht und erledige deine erforderlichen Sachen.

Code ist getestet und funktioniert.

Hoffe das hilft!

Sie können verwenden get_category_link(int|object $category)

https://developer.wordpress.org/reference/functions/get_category_link/

Und hier, wie ich es auf ‘content-product_cat.php

<a href="https://stackoverflow.com/questions/34205713/<?php esc_url_e( get_category_link( $category->term_id ) ); ?>">
        <h5 class="product-name"><?php esc_attr_e( $category->name ); ?></h5>
        <span class="dima-divider line-center line-hr small-line"></span>
        <span class="count">
        <?php  if ( $category->count > 0 ) {
        echo apply_filters( 'woocommerce_subcategory_count_html', $category->count . ' ' . ( $category->count > 1 ? __( 'Products', 'woocommerce' ) : __( 'Product', 'woocommerce' ) ), $category );
        }?>
        </span>
</a>

1395040cookie-checkHolen Sie sich die Kategorie-URL nach Kategorie-ID in WooCommerce auf der Produktdetailseite

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

Privacy policy