Ottieni il titolo della categoria corrente di prodotti nella tassonomia WooCommerce

21 nov 2013, 00:17:48
Visualizzazioni: 46.7K
Voti: 3

Desidero mostrare il titolo della categoria tassonomica corrente del prodotto nella pagina del singolo prodotto.

Il codice qui sotto funziona, ma restituisce tutte le categorie di prodotti. Ho bisogno di aiuto per isolare la categoria corrente.

<?php 
    global $post;
    $args = array( 'taxonomy' => 'product_cat',);
    $terms = wp_get_post_terms($post->ID,'product_cat', $args);

    $count = count($terms); 
    if ($count > 0) {

    foreach ($terms as $term) {
        echo '<div style="direction:rtl;">';
        echo 'Categoria: ' . $term->name;
        echo '</div>';
    }
}
?>

Dopo alcune ore di sperimentazione e ricerca, voi siete la mia ultima speranza per una soluzione. Grazie.

1
Commenti

Per favore, fai seguito alle domande che hai posto, è una parte importante del processo su WPSE - consulta Cosa dovrei fare quando qualcuno risponde alla mia domanda? e Perché il voto è importante? per una comprensione più approfondita. Grazie!

Nicolai Grossherr Nicolai Grossherr
28 nov 2013 00:05:44
Tutte le risposte alla domanda 2
4

Potresti usare get_the_term_list

echo get_the_term_list( $post->ID, 'product_cat', '<div style="direction:rtl;">', '</div>', '' ); 

Il sistema di visualizzazione di un solo titolo di categoria su una pagina singola di prodotto fallisce se inizi ad aggiungere l'elemento a più categorie.

Una volta sono impazzito su un progetto in cui un cliente aggiungeva elementi del portfolio a due categorie e voleva comunque che mostrassi il titolo della categoria "corretta" a seconda dei casi. Quel progetto mi ha portato a creare il plugin Radio Buttons for Taxonomies per limitare gli utenti a un singolo termine in determinate tassonomie.

21 nov 2013 02:50:11
Commenti

Solo come informazione aggiuntiva, usare get_the_term_list() è esattamente ciò che fa $product->get_categories().

Nicolai Grossherr Nicolai Grossherr
21 nov 2013 03:06:48

@helgatheviking Grazie per aver dedicato tempo ad aiutare. Entrambe le soluzioni funzionano per una singola categoria.

Kapitol Kapitol
21 nov 2013 03:42:03

@ialocin È vero! Si impara qualcosa di nuovo ogni giorno.

helgatheviking helgatheviking
21 nov 2013 12:52:07

Il mio motto di vita :)

Nicolai Grossherr Nicolai Grossherr
28 nov 2013 00:05:13
6

Nella maggior parte dei temi che conosco questo è lo standard, ma il tuo potrebbe essere diverso. Il codice qui sotto proviene dal file meta.php, che è responsabile per mostrare i meta dati - categorie, tag - in WooCommerce.

Codice:

    <?php
            $size = sizeof( get_the_terms( $post->ID, 'product_cat' ) );
            echo $product->get_categories( ', ', '<span class="posted_in">' . _n( 'Categoria:', 'Categorie:', $size, 'woocommerce' ) . ' ', '.</span>' );
    ?>

Modifica:

Ho fornito una risposta estesa a questo problema qualche tempo fa:

21 nov 2013 01:21:09
Commenti

Grazie, ialocin. Questo codice restituisce tutte le categorie. Non è quello che sto cercando. Voglio che venga visualizzata la singola categoria in cui ti trovi attualmente.

Kapitol Kapitol
21 nov 2013 01:49:49

Immagino di averti frainteso, vedi la mia modifica. @Kapitol

Nicolai Grossherr Nicolai Grossherr
21 nov 2013 02:02:05

La tua soluzione mostra effettivamente una singola categoria, ma non è ancora la categoria corrente. Hai affrontato il problema di avere più categorie di livello principale dicendo "non funzionerà se un prodotto ha più categorie principali/di primo livello, o almeno non le mostrerà tutte;"

Kapitol Kapitol
21 nov 2013 02:10:24

Sei in una pagina di prodotto singolo, se un prodotto ha più di una categoria di livello superiore, come può esserci una singola categoria corrente? @Kapitol

Nicolai Grossherr Nicolai Grossherr
21 nov 2013 02:13:51

Buona domanda. Potrebbe essere impossibile. Forse è una soluzione simile al breadcrumb. Ecco cosa volevo ottenere.

In una pagina di categoria viene elencata la categoria corrente in cui ti trovi. Cliccando su un prodotto all'interno di quella categoria si viene portati al prodotto. Voglio un titolo che indichi da quale categoria precedente provieni.

Kapitol Kapitol
21 nov 2013 02:19:15

Lo so, è impossibile senza logica aggiuntiva. A proposito, anche i breadcrumb hanno lo stesso problema: come dovrebbero sapere qual è il percorso corretto. Normalmente ne viene scelto uno, a seconda di come la funzione sottostante ordina i termini. Il tuo problema d'altra parte può essere risolto passando un valore alla pagina del prodotto singolo dalla pagina della categoria da cui provieni, ma sarebbe completamente diverso dalla domanda che hai fatto. Dovresti approfondire questo aspetto e fare una nuova domanda. Questa secondo me è risolta o senza risposta. @Kapitol

Nicolai Grossherr Nicolai Grossherr
21 nov 2013 02:31:15
Mostra i restanti 1 commenti