it-swarm.cn

不同页面模板上的不同小部件?

如果我有几个不同的页面模板,我将如何为每个模板显示不同的侧边栏小部件集合?我使用Starkers主题作为起点。

4
cannyboy

您需要在functions.php文件中创建更多侧边栏,然后编辑页面模板以调用所需的侧边栏。

添加侧边栏

进入你的functions.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”的位置为此新侧边栏添加了逻辑名称。数组的其余部分允许您在窗口小部件(before_widget)之前放置HTML,如果您的主题需要其设计并将HTML放在窗口小部件(after_widget)之后。此外,主题中更常用的是小部件标题的自定义样式。您可以将HTML放在标题(before_title)之前和标题之后(after_title)。在上面的示例中,每个小部件标题将在其之前和之后放置<h2 class="widgettitle">以关闭开始标记。

将新的侧边栏添加到页面模板中

现在您已经添加了侧边栏,您需要将它放在您想要的页面模板中。找到模板内部(通常)调用默认侧边栏的位置,并将其替换为以下内容,其中数字是在functions.php文件中添加侧边栏的顺序。

<?phpif ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(Sidebar number here) ) : ?><?php endif; ?>

这个侧边栏是在functions.php文件中添加的第二个侧边栏,所以要在页面模板中调用它,你将把_2函数放在!dynamic_sidebar(Put sidebar number here) )中。

添加小部件

将页面模板添加到页面模板后,只需将小部件添加到外观 - >窗口小部件管理页面的侧栏中。新的侧边栏将在那里显示您在functions.php文件中给出的名称。

希望这可以帮助!

8
Joshua Lynch

Widget Logic 也是一个选项。

3
ZaMoose
  1. Widget Logic是一个解决方案 - 也是一个很好的解决方案。

  2. 多个侧边栏是更强大的解决方案,因为您可以完全自定义functions.php中的所有前/后_widget标记。更不用说你可以制作任何数量的这些侧边栏了。

  3. 更轻量级的解决方案可能只是使用body类来区分css上的页面类型。隐藏你不想要的东西,显示你做的东西。它是一种快速而简单的方式来实现这种事情。

1
eddiemoya

另一个解决方案是 Display-Widgets plugin,它会在您在侧边栏中激活的每个小部件中添加一个下拉菜单,您可以在其中选择要显示或隐藏的页面/帖子。

1
Philip

另外两个选项:1。而不是让'sidebar.php'更复杂,将新的widgetized sidebars添加到新的侧边栏文件'sidebar-xxx.php'然后在页面模板中使用

  1. 你可以使用 contextual-widgets plugin
0
hannit cohen