Изменить имена классов CSS виджета для разных категорий страниц в WordPress - PullRequest
0 голосов
/ 02 февраля 2010

Я хочу изменить имена классов виджетов боковой панели на каждой странице категорий WordPress, и я решил, что лучший способ сделать это - создать функцию в functions.php со всеми условиями и вернуть требуемое имя класса , Затем я вызвал функцию в списке тегов функции register_sidebar.

if (function_exists('register_sidebar')) {
  register_sidebar(array(
   'before_widget' => '<li class="sidebarModule">',
   'after_widget' => '</li><!-- end module -->',
   'before_title' => '<h2 class="moduleTitle "'.set_widget_title_color().'>',
   'after_title' => '</h2>',
  ));
}


function set_widget_title_color() {

    if(is_category('technology')) {
        $color = "catNavColor1_active";
    } elseif(is_category('gadgets')) {
        $color = "catNavColor2_active";
    } elseif(is_category('social-media')) {
        $color = "catNavColor3_active";
    } elseif(is_category('gaming')) {
        $color = "catNavColor4_active";
    } elseif(is_category('other')) {
        $color = "catNavColor5_active";
    }

    return $color;
}

По какой-то причине вышесказанное не работает. Пожалуйста, помогите

Спасибо

1 Ответ

2 голосов
/ 03 февраля 2010

Я думаю, register_sidebars вызывается слишком рано в процессе, когда категория еще не определена. Вы пытались реализовать фильтр dynamic_sidebar_params? Я не смог найти ничего в Кодексе WordPress, но нашел этот хороший пример . Ваш другой вопрос по этой теме также имеет полный ответ .

Это работает, только если вы реализуете боковые панели, используя dynamic_sidebar в своем виджете, так как эта функция вызывает фильтр dynamic_sidebar_params. Если у вас есть статические виджеты (определенные в вашем шаблоне, но не использующие страницу администрирования виджетов), вы должны добавить вызов своей функции в этот код шаблона, например:

<li class="sidebarModule">
<h2 class="moduleTitle <?php echo set_widget_title_color(); ?>">Widget title</h2>
<?php /* Your widget code */ ?>
</li><!-- end module -->
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...