всегда ли динамическая боковая панель возвращает значение true при использовании видимости Jetpack


Если у меня есть какие-либо виджеты на боковой панели, даже если видимость jetpack настроена на то, чтобы не отображаться на этой странице, is_dynamic_sidebar возвращает значение true.

Вот код в моем файле функций темы:

add_action( 'init', 'iartz_add_sidebar_class' );

function iartz_add_sidebar_class() {
    add_filter('body_class','check_has_sidebar');
    function check_has_sidebar($classes) {
        if ( is_dynamic_sidebar() ) {
            $classes[] = 'has-sidebar';
        } else {
            $classes[] = 'no-sidebar';
        }
        return $classes;
    }
}

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

Есть ли другой способ проверить наличие боковых панелей, которые учитывали бы видимость jetpack, или другой плагин это будет иметь ту же функциональность, но также работать с is_dynamic_sidebar?

Author: Geoffrey Burdett, 2014-07-25

1 answers

Вы можете использовать is_active_sidebar('your_sidebar_name or id') вместо is_dynamic_sidebar(), чтобы проверить, есть ли виджеты на требуемой боковой панели или нет.В данном случае это работает на вас.

 2
Author: bravokeyl, 2014-07-26 02:48:34