WordPress отображает заголовок дочерней категории со своими ссылками

#php #wordpress

#php #wordpress

Вопрос:

Отображать дочерние категории без включения родительской категории

Я протестировал несколько функций, которые я видел в Интернете, но ничто не соответствует моим требованиям. Который отображает только заголовки дочерних категорий со своей ссылкой. Например, родительская категория имеет две дочерние категории. Я хочу отобразить эти две подкатегории и применить ссылку для каждой из них, которая ссылается на соответствующую категорию.

Я смог получить сообщения внутри цикла, которые включали миниатюру, заголовок сообщения, выдержку и т. Д. Но мне было трудно достичь того, что мне нужно.

И я нашел это решение в Интернете, которое достигло половины этого.

 function the_category_children($slug=""){
  if($categories       = get_the_category()):
    if($slug_category   = get_category_by_slug($slug)):
      foreach($categories as $category):
        echo (cat_is_ancestor_of($slug_category, $category)) ? $category->cat_name : '';
      endforeach;
    endif;
  endif;
}
  

Приведенная выше функция отображает две нужные мне подкатегории, не включая родительскую категорию. Но не могли бы вы помочь мне, как добавить разделитель для каждой категории, используя эту функцию? А также как правильно добавить ссылку, которая ссылается на название соответствующей категории? У меня есть свой собственный способ добавления ссылки, но я думаю, что это настолько уродливо, что, по-моему, состоит из лишних ненужных кодов.

Я надеюсь, что кто-нибудь может помочь мне достичь этого. Заранее спасибо мастерам! 🙂

Ответ №1:

Я решил свою проблему с помощью этой пользовательской функции, которую я нашел в Интернете, и немного изменил, чтобы соответствовать моим требованиям.

 function the_category_children($slug=""){
  $separator = ', ';
  $output = '';
  if($categories       = get_the_category()):
    if($slug_category   = get_category_by_slug($slug)):
      foreach($categories as $category):
        if (cat_is_ancestor_of($slug_category, $category)):
          $output .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '">' . esc_html( $category->name ) . '</a>' . $separator;
        endif;
      endforeach;
      echo trim( $output, $separator );
    endif;
  endif;
}
  

И вызывая эту функцию the_category_children(‘category_name’) внутри цикла (content.php ). ^_^