Получить идентификатор категории внутри фильтра "wp_list_categories" - PullRequest
0 голосов
/ 18 февраля 2019

Я использую "Категории" виджет в моей боковой панели WordPress.Я использовал поле ACF, чтобы выбрать Цвет фона категории.Основываясь на значении поля ACF, я хочу добавить уникальный класс к тегу привязки каждой категории.

Для этого я реализовал следующий код.

function categories_list_filter ( $variable, $args ) {
   $term_meta = get_term_meta( 5, 'category_background', true);
   $variable = str_replace('<a ', '<a class="' . $term_meta  . '-text"', $variable);
   return $variable;
}
add_filter( 'wp_list_categories','categories_list_filter' );

Как получить идентификатор категории здесь в этом фильтре?

1 Ответ

0 голосов
/ 18 февраля 2019

Мне кажется, вы хотите получить ID, который может быть таким:

add_filter( 'wp_list_categories', 'custom_list_categories', 999, 2 );
function custom_list_categories( $output, $args ){
    $terms = get_categories( $args );
    $result = $output;
    if( $terms ):
        ob_start(); ?>
            <?php 
            foreach( $terms as $term ):
                $term_meta = get_term_meta( $term->term_id, 'category_background', true); ?>
                <li class="cat-item cat-<?php echo $term->term_id; ?>">
                    <a class="<?php echo $term_meta; ?>" href="<?php echo get_term_link( $term ); ?>"><?php echo $term->name; ?></a>
                </li>
                 <?php
            endforeach; ?>
        <?php 
        $result = ob_get_clean();
    endif;
    return $result;
}
...