Отключите отображение текста подкатегории после перехода к этой подкатегории — woocommerce

#php #wordpress #woocommerce

Вопрос:

Сообщество StackOverflow. Я хотел бы попросить вас о помощи.

Моя проблема в том, что я хочу отобразить текст всех подкатегорий в карточке основной категории. Использование этого кода,

 add_action('woocommerce_after_subcategory_title', 'woocommerce_subcats_from_parentcat_by_ID', 30);  function woocommerce_subcats_from_parentcat_by_ID($category) {  $parent_category_ID = $category-gt;term_id;  $args = array(  'hierarchical' =gt; 1,  'show_option_none' =gt; '',  'hide_empty' =gt; 0, // Set to 0 to show empty categories and 1 to hide them  'parent' =gt; $parent_category_ID,  'taxonomy' =gt; 'product_cat'  );  $subcategories = get_categories($args);  echo 'lt;div class="custom_subcategory_main"gt;';  echo 'lt;span class="custom_subcategory_klasy"gt;Dostępne klasy:lt;/spangt;lt;brgt;';  foreach ($subcategories as $subcategory) {  echo 'lt;spangt; '.$subcategory-gt;name.'lt;/spangt;';  }  echo 'lt;brgt;';  echo 'lt;span class="custom_subcategory_klasy"gt;Poziom:lt;/spangt;lt;brgt;';  echo 'lt;spangt;Szkoła podstawowalt;/spangt;';  echo 'lt;/divgt;'; }   

текст подкатегорий правильно отображается в карточке основной категории [экран ниже]. правильное отображение текста подкатегории

Проблема в том, что после перехода к подкатегории продукта она все еще видна, и я хотел бы ее скрыть. Точнее, я хотел бы скрыть эту часть кода [экран ниже].

 echo 'lt;span class="custom_subcategory_klasy"gt;Dostępne klasy:lt;/spangt;lt;brgt;';   

Я хотел бы скрыть то, что выделено красным

Комментарии:

1. Если вы просто получаете этот заголовок, но под ним нет выходных данных, это должно означать $subcategories , что он не содержал никаких элементов, поэтому цикл foreach вообще не повторялся. Поэтому оберните все это в условие, которое проверяет, не пуст ли этот массив.

Ответ №1:

Если я правильно понимаю, как только вы попадете в подкатегорию, больше детей не будет. Таким образом, вы можете поместить проверку внутри своей функции, чтобы узнать, существуют ли дети, и если нет, выйти:

 add_action('woocommerce_after_subcategory_title', 'woocommerce_subcats_from_parentcat_by_ID', 30);  function woocommerce_subcats_from_parentcat_by_ID($category) {  $parent_category_ID = $category-gt;term_id;  $args = array(  'hierarchical' =gt; 1,  'show_option_none' =gt; '',  'hide_empty' =gt; 0, // Set to 0 to show empty categories and 1 to hide them  'parent' =gt; $parent_category_ID,  'taxonomy' =gt; 'product_cat'  );  $subcategories = get_categories( $args );  if ( empty ( $subcategories ) ) return; // exit  echo 'lt;div class="custom_subcategory_main"gt;';  echo 'lt;span class="custom_subcategory_klasy"gt;Dostępne klasy:lt;/spangt;lt;brgt;';  foreach ($subcategories as $subcategory) {  echo 'lt;spangt; '.$subcategory-gt;name.'lt;/spangt;';  }  echo 'lt;brgt;';  echo 'lt;span class="custom_subcategory_klasy"gt;Poziom:lt;/spangt;lt;brgt;';  echo 'lt;spangt;Szkoła podstawowalt;/spangt;';  echo 'lt;/divgt;'; }  

Комментарии:

1. Да, вы правильно поняли. На самом деле, ваш код делает именно то, что мне нужно. Спасибо вам за вашу помощь.