2014-06-10 13 views
5

Sto accedendo a archive-products.php su woocommerce per visualizzare i miei prodotti (come il normale processo in woocommerce).woocommerce come ottenere la categoria corrente

Nella pagina di archive-products.php ho aggiunto la barra laterale con tutte le categorie di prodotto del mio negozio (con o senza prodotti). Ho usato il seguente codice per farlo:

$taxonomy = 'product_cat'; 
$orderby = 'ID'; 
$show_count = 0;  // 1 for yes, 0 for no 
$pad_counts = 0;  // 1 for yes, 0 for no 
$hierarchical = 1;  // 1 for yes, 0 for no 
$title = '<h2>' . _x('Our Products', 'mfarma') . '</h2>'; 
$hide_empty = 0; 

$args = array(
    'taxonomy' => $taxonomy, 
    'orderby' => $orderby, 
    'order' => 'ASC', 
    'show_count' => $show_count, 
    'pad_counts' => $pad_counts, 
    'hierarchical' => $hierarchical, 
    'title_li' => $title, 
    'hide_empty' => $hide_empty 
); 
?> 

<ul> 
    <?php wp_list_categories($args); ?> 
</ul> 

Ora il lato sinistro della pagina ha la barra laterale al di sopra e quello di destra ha i prodotti. In ogni categoria di prodotto ho aggiunto una piccola descrizione con un formato html che voglio mostrare quando l'utente ha cliccato sulla categoria. Secondo woocommerce quando si va in una categoria specifica (nel mio caso, http://localhost/product-category/mycategory) è ancora il archive-products.php.

Sto cercando di ottenere il term_id dal collegamento cliccato, ma il ciclo (e il globale $ post) mi indicano il primo prodotto della lista invece della categoria di cui ho bisogno. Quindi se una categoria ha zero prodotti, non riesco a ottenere il term ID. Come ottengo quell'ID di termine da archive-products.php?

risposta

12

Trovato la risposta per qualcos'altro ma si applica anche alla mia domanda.

add_action('woocommerce_archive_description', 'woocommerce_category_description', 2); 

function woocommerce_category_description() { 
    if (is_product_category()) { 
     global $wp_query; 
     $cat = $wp_query->get_queried_object(); 
     echo "CAT IS:".print_r($cat,true); // the category needed. 
    } 
} 
+0

E metti questo, dove? – 3Dom

+1

In functions.php per il tema, o in un plugin.php se stai facendo qualcosa di più generico e ne hai bisogno. – Panagiotis

+0

Voglio mostrare l'immagine anche con il mio specifico HTML, ti spiegherei per favore è possibile tramite azione o devo usare qualche query in archive-products.php –

2

Puoi farlo più semplice:
Stampa Categoria corrente:

single_cat_title(); // this prints your current category 

Get corrente di stringa categoria:

single_cat_title('', false); // this returns your current category 
echo single_cat_title('', false); // for print current category