检查当前页面上是否有任何边栏处于活动状态

时间:2016-02-09 作者:rafaelfndev

是否可以检查当前页面上是否有任何活动的侧栏?

像这样:

@编辑

即使当前页面没有此侧栏处于活动状态,此函数也会返回true

<?php if(is_active_sidebar(\'sidebar-1\')) {
// sidebar-1 is active...
} ?>
但我需要检查是否有任何侧栏处于活动状态(不指定侧栏名称),并且我只需要检查当前页面,而不是所有页面,如:

<?php if(any_sidebar_active_on_this_page()) {
// has sidebar active on this specific page, do something...
} ?>

2 个回复
SO网友:Sterling Hamilton

我认为这里的问题是白话的问题。

is_active_sidebar 不是特定于页面的--只是检查整个站点中是否有数据。

你在问一个不同的问题。听起来像是在问“这个模板是否引用了侧边栏,这些侧边栏中是否有数据?”听起来你根本不想引用侧边栏的名称,你希望这是一个全面的通用问题。

最后一点使这变得困难,并可能将其转化为架构问题,而不是WordPress问题。把WordPress想象成一个服务员——它只会接受你的订单并得到结果。它不是为你设计的,你可以问这样的问题:“餐厅里有人在吃牛排吗?”--所以那里没有你需要的东西。

你可以加入https://codex.wordpress.org/Plugin_API/Action_Reference/dynamic_sidebar

然后,您可以在任何时候有人调用包含数据的侧栏时设置变量或调用函数,这将允许您在这些时刻做出反应。

SO网友:Sid

foreach ( $GLOBALS[\'wp_registered_sidebars\'] as $sidebar ) {    
    if(is_active_sidebar($sidebar[\'name\'])) {
        // $sidebar[\'name\'] is active...
    }
}
这将遍历已注册的侧栏列表,然后检查每个页面加载中是否存在任何侧栏。

相关推荐

Hiding menu on specific pages

我在某些页面上隐藏顶部菜单时遇到问题。以下是我试图隐藏菜单的网站https://domain.com/cookies-statement/ https://domain.com/privacy-policy/ 看来,来自其他线程的解决方案对我不起作用(或者我做错了什么),请告诉我这是否可能与我的主题一起实现谢谢