Проверить, является ли категория родительской по её ID
Вопрос простой (я и ответа не знаю ;)
Мне нужно проверить, имеет ли категория дочерние элементы (является родительской) по её cat-id с помощью функции.
Например:
function check_category ($catid){<br/>............<br/>...//true если является родительской, false если нет<br/>return $result;<br/>}
Примечание: Я могу передавать только cat-id в функцию, потому что мне нужно использовать её в functions.php
Заранее спасибо...
Вы можете сделать что-то подобное:
function category_has_parent($catid){
$category = get_category($catid);
if ($category->category_parent > 0){
return true;
}
return false;
}
И использовать это следующим образом:
if (category_has_parent('22')){
//true — есть родительская категория
}else{
//false — у этой категории нет родителя
}
Обновление:
Чтобы проверить обратную ситуацию (есть ли у категории дочерние элементы), можно использовать get_categories
$children = get_categories(array('child_of' => id,'hide_empty' => 0));
if (count($children) > 1){
//есть дочерние элементы
}else{
//нет дочерних элементов
}

Первый фрагмент кода можно упростить до return $category->category_parent
.

@Bainternet, извините, но я задал вопрос некорректно. Я хотел узнать, является ли эта категория ($catid) конечной? То есть, если у категории нет дочерних элементов, то она конечная... Заранее спасибо...

Значит, вам нужно обратное - вместо проверки наличия родителя, вы хотите проверить, есть ли у категории дочерние элементы?

@Bainternet, да, и я решил свою проблему с помощью: $catlist = wp_list_categories('echo=0&orderby=id&hide_empty=0&title_li=&child_of='.$categoryid); if (($catlist)!='<li>Нет категорий</li>')

@Alper, проверь ответ снова, я добавил гораздо более элегантный способ сделать это.

Ознакомьтесь с Codex: http://codex.wordpress.org/Function_Reference/get_category_parents
// возвращает true или false
function check_category( $cat_id ){
$parent = '';
$parent = get_category_parents( $cat_id );
return empty($parent);
}

Я не думаю, что это сработает, по механике работы get_category_parents()
её вывод всегда будет включать как минимум саму категорию.
