Как отфильтровать список категорий в админке
Я успешно использую приведенную ниже функцию для обрезки длины описаний категорий при просмотре экрана управления категориями (спасибо Rarst).
Допустим, я хочу удалить дочерние элементы категории "Без рубрики" из этого списка. Достаточно ли просто добавить проверку в цикл ниже, чтобы пропускать эти дочерние элементы?
ОБНОВЛЕНИЕ: С подсказкой Rarst об использовании unset(), я изменил код ниже, добавив правильные части для удаления определенных категорий из списка управления категориями...
// Очистка описаний категорий в таблице управления категориями
add_action( 'admin_head-edit-tags.php', 'admin_edit_tags' );
function admin_edit_tags()
{
add_filter( 'get_terms', 'admin_trim_category_description', 10, 2 );
}
function admin_trim_category_description( $terms, $taxonomies )
{
if( 'category' != $taxonomies[0] )return $terms;
foreach( $terms as $key=>$term )
{
$terms[$key]->description = strip_tags(substr( $term->description, 0, 75 ))."...";
// новые изменения здесь
if($terms[$key]->term_id == 1){unset($terms[$key]);}
}
return $terms;
}

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

@Scott B да, я понял ваш вопрос. Как я уже говорил, $terms
содержит все полученные категории, поэтому в этом цикле вы проверяете $term
на совпадение с нежелательной категорией и при совпадении делаете unset($terms[$key]);
. Осторожно предполагаю, что это должно сработать. Хотите, чтобы я написал код за вас?
