Показывать только дочерние категории wordpress
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>';
}
}
?>
Код не проверял, но логика примерно такая
![](/img/smilies/smile.gif)
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>';
}
?>