Как отфильтровать "Без рубрики" из всех списков категорий с помощью одного фильтра в functions.php?

10 янв. 2011 г., 18:40:45
Просмотры: 2.71K
Голосов: 1

Мне нужно добавить код в functions.php, чтобы перехватывать все вызовы wp_list_categories() и the_category() для исключения категории "Без рубрики" и любых её дочерних элементов (ИЛИ cat_id 1). Также хочу ограничить количество слов в атрибуте "title" каждого элемента списка. По умолчанию используется $cat_args['use_desc_for_title'] = 1;, но похоже, это нельзя вставить в фильтр исключений ниже.

Я использую код ниже, который успешно удаляет нежелательные категории из списков, созданных через wp_list_categories, но не удаляет их из списков, созданных через the_category...

function my_list_terms_exclusions($exclusions,$args) {
  $children = implode(',',get_term_children(1,'category'));
  $children = (empty($children) ? '' : ",$children");
  return $exclusions . " AND (t.term_id NOT IN (1{$children}))";
}
add_filter('list_terms_exclusions', 'my_list_terms_exclusions', 10, 2);?>
1
Комментарии

Почему просто не избавиться от uncategorized? Сделайте другую категорию по умолчанию, затем вы сможете удалить uncategorized. Гораздо меньше хлопот.

Rarst Rarst
11 янв. 2011 г. 15:30:26
Все ответы на вопрос 1
1

Я наконец-то смог разобраться с этим... Хотя мне пришлось установить фильтр непосредственно на метод widget_categories_args, так что потребовалось два фильтра для достижения нужного результата.

function my_categories_filter($cat_args){
    $cat_args['title_li'] = ''; // Убираем заголовок списка категорий
    $cat_args['exclude_tree'] = 1; // Исключаем категорию и все её подкатегории
    $cat_args['exclude'] = 1; // Исключаем конкретную категорию
    $cat_args['use_desc_for_title'] = 0; // Отключаем использование описания в качестве title
    return $cat_args;
}

add_filter('widget_categories_args', 'my_categories_filter', 10, 2);
12 янв. 2011 г. 22:36:56
Комментарии

@philip: вам нужно добавить каждый из них в список исключений (это массив)

Scott B Scott B
12 мар. 2011 г. 22:15:36