说完首页定制化,我们迫切需要研究一下在Genesis Framework中如何添加Sidebar(widget area),首页可以主要由Widget构成,类似于joomla模块,样子看起来也不那么像博客了。
在Genesis下注册Sidebar很简单,在子模板的functions.php中加入如下代码
/** Register widget areas */ genesis_register_sidebar( array( 'id' => 'after-post-ad', 'name' => __( 'After Post Ad', 'themename' ), 'description' => __( 'This is a widget area that can be placed after the post', 'themename' ), ) );
'id' – 必须是一个不重复的值,可以是字母或数字下划线,不可以有空格或其他特殊字符,更不要命名为sidebar-1,sidebar-2之类的,原因参考WordPress Sidebar命名问题;
‘name’ – 选的比较有意义即可,能一下让使用者明白这个sidebar位于哪些模板的哪个位置;
‘description’ – 如果你没能用名字把sidebar介绍好,那就给它一个更详细的描述吧
通过这个方法你可以注册任意多个sidebar,但id必须是独一无二的,名字也不能重复。
你可以将定义的sidebar放到文章首页定制化中自定义的home.php中,通过下面方法调用
/** Register widget areas */ genesis_register_sidebar( array( 'id' => 'after-post-ad', 'name' => __( 'After Post Ad', 'themename' ), 'description' => __( 'This is a widget area that can be placed after the post', 'themename' ), ) );
home.php的内容就变成下面这样
<?php get_header(); do_action('genesis_before_content_sidebar_wrap'); ?> <div id="content-sidebar-wrap"> <?php do_action('genesis_before_content'); ?> <div id="content" class="hfeed"> <?php if (!dynamic_sidebar('After Post Ad')) : endif ?> </div> <!-- end #content --> <?php do_action('genesis_after_content'); ?> </div> <!-- end #content-sidebar-wrap --> <?php do_action('genesis_after_content_sidebar_wrap'); get_footer();
如果你访问后台->外观(Appearance)->小工具(Widget),你会发现多了一个叫After Post Ad的sidebar,现在我往这个widget里拖拽Search和Calendar小工具,那么首页就会变成这样
快来自己尝试一下吧。