Intereting Posts
Как заставить SSL не только на одной странице? Удалить вкладку «С компьютера» для сообщений с существующими вложениями? $ query-> query_var не задан для страниц Положение переключателя короткого описания и вариантов страница не обновляется с помощью базы данных переадресация на тему переключения – WordPress Как добавить песни на мой сайт WordPress? получить значение dynamic_sidebar () в массиве в wordpress Как решить этот настраиваемый тип сообщения идет на страницу 404? Удалить тег из поддержки темы Как добавить атрибут «data-» к тегу изображения выходного файла галереи Получить пользовательскую таксономию для короткого кода визуального композитора, но не работать? Цикл и добавление определенных категорий и изображений продуктов Проверьте, имеет ли текущий пользователь сообщение в типе сообщения и является ли авторская роль Пользовательская ссылка на постоянную ссылку и архив WordPress для пользовательского типа сообщения

WooCommerce – отображать дочерние категории продукта из определенного родителя

Я хочу отредактировать следующий фрагмент кода:

<?php if ( (!$theretailer_theme_options['category_listing']) || ($theretailer_theme_options['category_listing'] == 0) ) { ?> <!-- Show only the first category--> <?php $gbtr_product_cats = strip_tags($product->get_categories('|||', '', '')); //Categories without links separeted by ||| ?> <h3><a href="<?php the_permalink(); ?>"><?php list($firstpart) = explode('|||', $gbtr_product_cats); echo $firstpart; ?></a></h3> <?php } ?> 

Пример: http://tjwillems.nl/priveekollektie/product-category/artists/reinier-bosch/

Красное название под изображением продукта должно показывать только дочерние категории «artist». Так, например, только «Reinier Bosch», а не «Lighting»,

Может кто-нибудь мне помочь?

Гритц, Том

Solutions Collecting From Web of "WooCommerce – отображать дочерние категории продукта из определенного родителя"

Функция woocommerce get_categories() объявлена ​​в abstract-wc-product.php , поскольку она основана на функции wordpress get_the_term_list() нет способа получить только конкретную ветвь категории. Это абсолютно не то же самое, что функция wordpress get_categories() , вы можете видеть, что именно woocommerce зависит от того, как она используется $product->get_categories() . Помимо очевидной разницы в аргументах, которые вы можете использовать, конечно, вы можете углубиться в это чтение и сравнить связанную информацию.


примерная категория: Дерево категорий:

 product_cat | |––cat1 | |––child1.1 | |––child1.2 | |––child1.3 | |––cat2 |––child2.1 |––child2.2 |––child2.3 


В вашем случае ветвями будут «художник» и «искусство», а не «cat1» и «cat2». Цель состоит в том, чтобы получить только одну отрасль соответствующей категории для названия, которое вы хотите показать. По крайней мере, это то, что достигнет нижеследующий код.

Как я уже сказал выше, если вы хотите получить только термины из определенного раздела категории / таксономии, вы должны сделать это по-другому. Вы должны использовать get_terms() и wp_get_post_terms() а затем пересечь результаты.

 //woocommerce product category $taxonomies = array( 'product_cat' ); //let's get an array with ids of all the terms a post has $post_tids = wp_get_post_terms($post->ID, 'product_cat', array("fields" => "ids")); //you have to change branch parent id accordingly $id_branch_parent = '111'; $args = array( 'fields' => 'ids', 'child_of' => $id_branch_parent ); //let's get an array with ids of all the terms a the branch has $branch_tids = get_terms( $taxonomies, $args ); //intersect post and branch terms to get an array of common ids $pnb_tids = array_intersect($post_tids, $branch_tids); //in case of multiple ids we have to loop through them foreach ( $pnb_tids as $tid ) { //get the term information by id $tobj = get_term_by('id', $tid, 'product_cat'); //store the term names into an array $pnb_name_arr[] = $tobj->name; } //implode the name array, this is the result you want to echo $pnb_term_list = implode(' – ', $pnb_name_arr); 

Это должно дать вам результат, который вы хотите, но он не проверен.

Вы можете прокомментировать эту часть

  <h3><a href="<?php the_permalink(); ?>"><?php list($firstpart) = explode('

', $gbtr_product_cats); echo $firstpart; ?></a></h3>

Добавить в html ….

Также вы можете использовать CSS, чтобы скрыть h3, например

 <style> .product_item h3 {display: none !important;} </style> 

Вы можете добавить свой css.

Выполнение этого «красного» текста исчезнет, ​​и у вас будет только другой текст.

Вот простейший способ отображения дочерних категорий продукта из определенного родительского идентификатора

 $parent_id = 12; // parent category id // Get child categories from parent id $get_child_category = get_terms('product_cat',array('child_of' => $parent_id)); // Filter products from child category foreach($get_child_category as $child_category){ $args = array( 'post_type' => 'product', 'posts_per_page' => 10, 'product_cat' => $child_category->slug, 'order' => 'DESC', ); }