如果我有两个不同的页面模板,如何为每个模板显示不同的侧栏小部件集合?我以Starkers主题为出发点。
不同页面模板上的不同小部件?
5 个回复
最合适的回答,由SO网友:Joshua Lynch 整理而成
您需要在函数中创建更多的侧栏。php文件,然后编辑页面模板以调用所需的提要栏。
Adding sidebars
进入你的功能。php文件。您应该看到一些侧栏已经注册。代码如下所示://Adds default sidebar
if ( function_exists(\'register_sidebar\') )
register_sidebar();
要添加另一个侧栏,请在现有侧栏注册后多次添加以下代码。//Registers new sidebar
if ( function_exists(\'register_sidebar\') ) {
register_sidebar(array(\'name\' => \'Name Sidebar Here\',\'before_widget\' => \'\',\'after_widget\' => \'\',\'before_title\' => \'<h2 class="widgettitle">\',\'after_title\' => \'</h2>\'));
}
其中显示“Name Sidebar Here”,为这个新的侧边栏输入一个逻辑名称。如果主题的设计需要,数组的其余部分允许您将HTML放在小部件之前(在\\u小部件之前),并将HTML放在小部件之后(在\\u小部件之后)。此外,主题中更常用的是小部件标题的自定义样式。您可以将HTML放在标题之前(在\\u title之前)和标题之后(在\\u title之后)。在上面的示例中,每个小部件标题都有<h2 class="widgettitle">
放置在其前面和后面,以关闭打开标记。Add your new sidebar to your page templates
现在,您已经添加了一个侧栏,需要将其放在页面模板中所需的位置。找到在模板内部调用默认侧栏的位置(通常),并将其替换为以下内容,其中数字是侧栏在函数中添加的顺序。php文件。<?phpif ( !function_exists(\'dynamic_sidebar\') || !dynamic_sidebar(Sidebar number here) ) : ?><?php endif; ?>
这个边栏是函数中添加的第二个边栏。php文件,所以要在页面模板中调用它,您将在!dynamic_sidebar(Put sidebar number here) )
.Add widgets
将其添加到页面模板后,只需将小部件添加到外观-->小部件管理页面的侧栏中即可。新的边栏将显示在那里,并带有您在函数中为其指定的名称。php文件。希望这有帮助!
SO网友:ZaMoose
和Widget Logic 也是一种选择。
SO网友:eddiemoya
小部件逻辑是一种解决方案,也是一种很好的解决方案。
由于您可以完全自定义函数中的所有before/after小部件标记,因此多个侧栏是更健壮的解决方案。php。更不用说你可以制作任意数量的边栏了。
更轻量级的解决方案可能只是使用body类来区分css上的页面类型。隐藏你不想要的东西,展示你做的东西。这是实现这类事情的一种快速而简单的方法。
SO网友:Philip
另一个解决方案是Display-Widgets 插件,它在你的侧边栏中激活的每个小部件中添加一个下拉菜单,你可以在其中选择显示或隐藏它的页面/帖子。
SO网友:hannit cohen
其他两个选项:1。而不是制作“侧边栏”。php“更复杂的是将新的widgetized边栏添加到新的边栏文件”边栏xxx。然后在页面模板中使用
您可以使用contextual-widgets 插件
结束