2014-10-21 3 views
0

Я использую woocommerce, я изменил single-product.php и поместил в цикле инструкцию «if», чтобы загрузить пользовательскую страницу для определенного продукта.Пользовательская страница одного продукта не работает

 <?php while (have_posts()) : the_post(); 

if (is_product_category('Benefit')) { 
    woocommerce_get_template_part('content', 'single-product-benefit'); 
}else{ 
    woocommerce_get_template_part('content', 'single-product'); 
} 
     endwhile; // end of the loop. ?> 

Моя проблема заключается содержание-монопродуктового-benefit.php называется по первой части «если» всегда загружается (для всех продуктов). Я подозреваю, что это очень глупая синтаксическая ошибка php, но я потратил час на это и не могу ее увидеть. Обе страницы php работают отлично. Почему-то я не могу получить это «если» правильно. Что я делаю не так?? Thx для вашей помощи ^^

+0

Можете ли вы использовать этот код внутри цикла while() для вывода категорий, к которым принадлежит изделие? А потом попробуйте продукт, не имеющий преимуществ, и дайте нам знать результат? '$ terms = get_the_terms ($ post-> ID, 'product_cat'); var_dump ($ terms); ' –

+0

Спасибо за ответ. Код выводит 'array (1) {[6] => object (stdClass) # 102 (11) {[" term_id "] => int (6) [" name "] => string (8)" benef "[ "slug"] => string (8) "benef" ["term_group"] => int (0) ["term_taxonomy_id"] => int (6) ["taxonomy"] => string (11) "product_cat" [ "description"] => string (0) "" ["parent"] => int (0) ["count"] => int (1) ["object_id"] => int (11) ["filter"] => string (3) «raw»}} 'на странице продукта преимущества ... – mrtnmgs

+0

... и' array (1) {[7] => object (stdClass) # 102 (11) {["term_id" ] => int (7) ["name"] => string (9) "books" ["slug"] => string (9) "books" ["term_group"] => int (0) ["term_taxonomy_id" ] => int (7) ["taxonomy"] => string (11) "product_cat" ["description"] => string (0) "" ["parent"] => int (0) ["count"] => int (1) ["object_id"] => int (8) ["filter"] => string (3) "raw"}} 'на другой странице, которую я пробовал. – mrtnmgs

ответ

0

is_product_category() Функция работает только при отображении страницы архива, аналогично функции Wordpress is_category(). Поскольку вы используете эту функцию внутри файла single-product.php, и это шаблон для уникальной страницы, функции выше не будут работать. Попробуйте с:

has_term('Benefit', 'product_cat', $post); 
+0

Спасибо Даниэль! Я не обратил на это внимания. 'has_term()' отлично работает. – mrtnmgs