当我们自定义了边栏小工具时,特别是多个,在调用这些小工具的时候,我们要使用is_active_sidebar()
做一个判断,下面小编说一下基本用法:
is_active_sidebar() 函数用来检查侧边栏里是否有小工具,如果有则返回 True,没有则返回 False
用法
is_active_sidebar( $index );
参数
$index
(混合)(必须)要检查的侧边栏的名称或者 ID
默认值:None
返回值
(布尔)如果检查的侧边栏里有小工具则返回 True,如果没有则返回 False
使用举例
wordpress内置了一些小工具,比如日历
、文章文档
。左侧的小工具一是由当前主题定义的页面区域(边栏),可以将小工具拖拽到页面区域内。从而对主题页面显示的东西做一定程度的定制。同时,小工具本身也可以多次使用和定制,也就是说同一个小工具可以出现在不同的区域内。这里有两个问题:
1、如何使主题支持这个功能
2、如何做一个自定义的小工具
主题支持小工具
主题需要在functions.php
中,使用register_sidebar
或register_sidebars
向wp注册自己可以支持的边栏
register_sidebar( array( 'name' => __( '小工具名称', 'twentytwelve' ), 'id' => 'sidebar-1', 'description' => __( '小工具描述', 'twentytwelve' ), 'before_widget' => '<aside id="%1$s" class="widget %2$s">', 'after_widget' => '</aside>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>', ) );
题模板的恰当地方将这个边栏放过来,使用dynamic_sidebar
:
<?php if ( is_active_sidebar( 'sidebar-1' ) ) : ?> <div id="secondary" class="widget-area" role="complementary"> <?php dynamic_sidebar( 'sidebar-1' ); ?> </div><!-- #secondary --> <?php endif; ?>
多个调用举例,加入我们注册了四个底部边栏小工具,我们可以这样is_active_sidebar()
判断调用。
<?php if ( is_active_sidebar('footer-1') || is_active_sidebar('footer-2') || is_active_sidebar('footer-3') ) : ?> <?php if ( is_active_sidebar( 'footer-1' ) ) : ?> <div class="footer-column"> <?php dynamic_sidebar( 'footer-1'); ?> </div> <?php endif; if ( is_active_sidebar( 'footer-2' ) ) : ?> <div class="footer-column"> <?php dynamic_sidebar( 'footer-2'); ?> </div> <?php endif; if ( is_active_sidebar( 'footer-3' ) ) : ?> <div class="footer-column"> <?php dynamic_sidebar( 'footer-3'); ?> </div> <?php endif; if ( is_active_sidebar( 'footer-4' ) ) : ?> <div class="footer-column"> <?php dynamic_sidebar( 'footer-4'); ?> </div> <?php endif; ?> <?php endif; ?>
位置
此函数位于:wp-includes/widgets.php