Как добавить 'use_desc_for_title = 0' ко всем вызовам wp_list_categories?

12 янв. 2011 г., 20:59:53
Просмотры: 1.16K
Голосов: 0

Мои описания категорий очень длинные, поэтому я не хочу, чтобы они использовались в атрибуте title списков категорий. Однако WordPress делает это автоматически при выводе стандартного виджета категорий в разметке.

Можно ли добавить фильтр в functions.php, который устанавливает значение по умолчанию для 'use_desc_for_title' в 0? (По умолчанию установлено 1)?

0
Все ответы на вопрос 2
1

Я наконец-то разобрался с этим. Оказалось гораздо проще, чем я думал...

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

// Добавляем фильтр для аргументов виджета категорий
add_filter('widget_categories_args', 'my_categories_filter', 10, 2);
12 янв. 2011 г. 22:35:20
Комментарии

Обратите внимание, что это изменит аргументы только для виджета, а не для всех вызовов wp_list_category(). Я не вижу подходящего фильтра для самой функции.

Rarst Rarst
12 янв. 2011 г. 22:43:21
1

Я искал решение той же проблемы. В итоге обнаружил очень простое решение вместо изменения функции, как предложил Scott B.

Это можно легко достичь, используя &use_desc_for_title=0 в нужном месте, где вы хотите скрыть длинное описание категории.

Это будет выглядеть примерно так:

<?php wp_list_categories('orderby=id&show_count=1&use_desc_for_title=0'); ?>
24 окт. 2011 г. 23:07:10
Комментарии

Я думаю, его конкретный случай использования заключался в изменении настроек виджета категорий, а не в пользовательском вызове wp_list_categories();

Stephen Harris Stephen Harris
8 нояб. 2012 г. 18:31:46