2014-06-10 23 views
5

Mam dostęp do archive-products.php na woocommerce, aby wyświetlić moje produkty (jak normalny proces w woocommerce).woocommerce, jak uzyskać aktualną kategorię

Na stronie archive-products.php dodałem pasek boczny ze wszystkimi kategoriami produktów w moim sklepie (z produktami lub bez). Użyłem poniższy kod, żeby to zrobić:

$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> 

Teraz po lewej stronie strony ma wyżej pasek boczny i prawy ma produktów. W każdej kategorii produktów dodałem mały opis z formatem html, który chcę pokazać po kliknięciu kategorii przez użytkownika. Zgodnie z woocommerce po przejściu do konkretnej kategorii (w moim przypadku, http://localhost/product-category/mycategory) nadal jest to archiwum-products.php.

Próbuję uzyskać słowo term_id z klikniętego łącza, ale pętla (i globalny post) wskazuje mi pierwszy produkt z listy zamiast wymaganej kategorii. Więc jeśli kategoria ma zero produktów, nie mogę uzyskać term ID. Jak uzyskać identyfikator tego hasła z archive-products.php?

Odpowiedz

12

Znaleziono odpowiedź na coś innego, ale dotyczy to również mojego pytania.

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

I umieścić to gdzie? – 3Dom

+1

W functions.php dla kompozycji lub w plugin.php, jeśli robisz coś bardziej ogólnego i potrzebujesz tego. – Panagiotis

+0

Chcę pokazać obraz również w moim specyficznym kodzie HTML, czy możesz wyjaśnić, czy jest to możliwe za pomocą działania, czy też muszę użyć jakiegoś zapytania w archive-products.php –

2

Można zrobić to prostsze:
Print Obecna kategoria:

single_cat_title(); // this prints your current category 

Pobiera aktualny ciąg kategorii:

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