Андрей Д.
34 сообщения
#8 лет назад
Нашел в сети такой вот код вывода только дочерних категорий wordpress. Т.е. если запись относится к категории: Родительская рубрика - Дочерняя рубрика, то выводится будет только Дочерняя рубрика. Например, Книги - Детективы, то данный код отобразит только ссылку на дочернюю рубрику Детективы.
<?php
$parentscategory ="";
foreach((get_the_category()) as $category) {
if ($category->category_parent > 0) {
$parentscategory .= '<a href="' . get_category_link($category->cat_ID) . '">' . $category->name . '</a>, ';
}
}
echo substr($parentscategory,0,-2);
?>

Проблема в том, что если запись относится к рубрике, которая не имеет дочернюю категорию, то не выводится ничего. 

Подскажите, пожалуйста, как модифицировать данный код, чтобы, если запись не имеет дочерней категории, то выводилась её Родительская категория, а не пустое место, как сейчас. Спасибо!
Артем Л.
11416 сообщений
#8 лет назад
<?php
      $parentscategory ="";
      foreach((get_the_category()) as $category) {
      if ($category->category_parent > 0) {
      $parentscategory .= '<a href="' . get_category_link($category->cat_ID) . '">' . $category->name . '</a>, ';
      echo substr($parentscategory,0,-2);
      }
      else {
      echo '<a href="' . get_category_link($category->cat_ID) . '">' . $category->name . '</a>';
      }
      }
?>

Код не проверял, но логика примерно такая
Артем Л.
11416 сообщений
#8 лет назад
Или даже как-то вот так:

<?php
$parentscategory = "";
$categories = get_the_category();
$k = 0;
foreach($categories as $category) {
    if ($category->category_parent > 0) {
        $k++;
        $parentscategory .= '<a href="' . get_category_link($category->cat_ID) . '">' . $category->name . '</a>, ';
    }
}
      
if ($k > 0) {
    echo substr($parentscategory,0,-2);
} else {
    echo '<a href="' . get_category_link($categories->cat_ID) . '">' . $categories->name . '</a>';
}
?>
Андрей Д.
34 сообщения
#8 лет назад
, огромнейшое спасибо, помогло!