Добавьте фильтр к wp_list_categories и запросу, какие условия таксономии он использует?

Это - вероятно, запутывающий заголовок моего вопроса, но это точно, что описывает мою проблему лучше всего.

Я хочу добавить краткий заголовок категории как имя класса к моему wp_list_categories() вывод. Я нашел действительно простую функцию, которая делает точно, что она работает отлично.

add_filter('wp_list_categories', 'add_slug_css_list_categories');

function add_slug_css_list_categories($list) {

    $cats = get_categories();

    foreach($cats as $cat) {
        $find = 'cat-item-' . $cat->term_id . '"';
        $replace = 'category-' . $cat->slug . '"';
        $list = str_replace( $find, $replace, $list );
        $find = 'cat-item-' . $cat->term_id . ' ';
        $replace = 'category-' . $cat->slug . ' ';
        $list = str_replace( $find, $replace, $list );*/
    }

    return $list;
}

Таким образом, теперь я имею class-categoryslug в моем lis для wp_list_categories()

У меня есть просто еще одна небольшая тонкая настройка для добавления к нему.

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

function wr_list_taxonomy($taxonomy, $orderby, $hierarchical) {
    $show_count   = 0;
    $pad_counts   = 0;
    $title        = '';

    $args = array(
      'taxonomy'     => $taxonomy,
      'orderby'      => $orderby,
      'show_count'   => $show_count,
      'pad_counts'   => $pad_counts,
      'hierarchical' => $hierarchical,
      'title_li'     => $title
    );

    return wp_list_categories( $args );
}

Таким образом, я могу использовать wr_list_taxonomy() и все мои категории перечислены.

Я хочу иметь то же самое для своих условий таксономии также, так, чтобы имена классов имели краткий заголовок термина таксономии, связанного с ним.

Это было бы легко, потому что я только должен заменить $cats = get_categories(); с $cats = get_terms('event_type');

Однако я могу только сделать или или. Так любой я принимаю решение использовать $cats = get_categories(); и все мои нормальные категории для нормальных сообщений в блоге имеют краткий заголовок категории как имя класса, или я использую $cats = get_terms('event_type'); и все мои условия таксономии имеют краткий заголовок термина как имя класса.

Я понятия не имею, как я могу определить в функции add_slug_css_list_categories() если функция в настоящее время увольняется за нормальные категории или за мои налоговые условия.

Я думал

add_filter('wp_list_categories', 'add_slug_css_list_categories');

function add_slug_css_list_categories($list) {

    //$cats = get_terms('event_type');
    $cats = get_categories();
    //if ( empty( $cats ) )
    //  $cats = get_categories();

Но это не работает. Какие-либо идеи?

0
30.01.2020, 11:20
1 ответ

Wordpress делает:

apply_filters( 'wp_list_categories', $output, $args );

Можно сделать:

function add_slug_css_list_categories($list,$args) { }

Затем можно использовать $args для определения, какой список Вы имеете.

Не уверенный, если необходимо сделать это, но когда Вы добавляете фильтр, существует также переменная для принятых аргументов:

add_filter('wp_list_categories', 'add_slug_css_list_categories',10,2);
2
19.02.2020, 23:51

Теги

Похожие вопросы