创建多个侧边栏的最佳方式

时间:2016-07-01 作者:Rishabh

我非常清楚how to make multiple sidebars. 但我相信我的方式并不是添加多个边栏的正确方式。

This is how I add multiple sidebars

如果我只是想创建一个侧栏,那么我就使用侧栏。php文件。但是如果我想使用另一个侧栏,那么我必须创建另一个php文件sidebar-new.php. 然后将此文件称为

 <?php 
      get_sidebar(\'new\'); 
 ?>
这意味着如果我想创建4个侧边栏,那么我必须创建4个php文件!

但我已经看到很多主题(在wordpress market中)提供了许多侧边栏,但它们只包含一个侧边栏的php文件(sidebar.php)!他们是怎么做到的?我之前从谷歌学习过制作边栏,但在搜索中我只得到我现在使用的结果(为多个边栏创建多个文件)。

那么,如何在不创建多个php文件的情况下创建多个侧栏!!???

3 个回复
SO网友:Owais Alam

在函数中定义新的边栏。php

<?php

if ( function_exists(\'register_sidebar\') ) {

   register_sidebar(array(
   \'before_widget\' => \'<li id="%1$s" class="widget %2$s">\',
   \'after_widget\' => \'</li>\',
   \'before_title\' => \'<h2 class="widgettitle">\',
   \'after_title\' => \'</h2>\'
   ));

}?>
一旦定义了这些are函数,您就会注意到额外的侧栏出现在WordPress仪表板的外观>窗口小部件选项下。在这里,您可以将所有小部件拖放到各种侧栏中。

<?php

if ( function_exists(\'register_sidebar\') ) {

   register_sidebar(array(
   \'name\' => \'sidebar 1\',
   \'before_widget\' => \'<div id="%1$s" class="widget %2$s">\',
   \'after_widget\' => \'</div>\',
   \'before_title\' => \'<h2>\',
   \'after_title\' => \'</h2>\'
    ));

   register_sidebar(array(
   \'name\' => \'footer sidebar 1\',
   \'before_widget\' => \'<div id="%1$s" class="widget %2$s">\',
   \'after_widget\' => \'</div>\',
   \'before_title\' => \'<h2>\',
   \'after_title\' => \'</h2>\'
   ));

}?>
将新侧栏添加到模板

在侧边栏中。php文件中,更改对现有侧栏的调用,以包括您在函数中定义的名称。php文件。

<?php if ( !function_exists(\'dynamic_sidebar\') || !dynamic_sidebar(\'sidebar 1\') ) : ?>

   <h2>Articles by month</h2>
   <ul>
      <?php wp_get_archives(\'title_li=&type=monthly\'); ?>
   </ul>
   <h2>Categories</h2>
   <ul>
      <?php wp_list_categories(\'show_count=0&title_li=\'); ?>
   </ul>

<?php endif; ?>
要添加新的侧栏,您可以复制上述代码,也可以简单地复制以下行。将这些行添加到您希望新窗口小部件出现的位置。在本例中,您可以从我在网站页脚中放置的名称中看到。与前面一样,不要忘记指定正确的提要栏名称。在上面的代码中,php语句之间显示的html是在侧栏中没有添加小部件时显示的html。显然,可以修改此“默认”代码以适合您的主题。在下面的代码中,由于没有额外的html,除非在WordPress仪表板的侧栏中添加了小部件,否则不会显示任何内容。

<?php if ( !function_exists(\'dynamic_sidebar\') || !dynamic_sidebar(\'footer sidebar 1\') ) : ?>
<?php endif; ?>

SO网友:cjbj

您可以区分侧栏inside sidebar.php. 我不知道你的目的是什么,但让我们假设你希望在单个帖子/页面和其他页面上有不同的侧栏。

在您的functions.php 您将使用id注册两个侧栏singulardefault 以通常的方式register_sidebar.

然后在sidebar.php 您可以包括以下内容

if (is_singular) {dynamic_sidebar(\'singular\');}
else {dynamic_sidebar(\'default\');}
当然,在这方面有很多不同的方法。您可以根据类别显示不同的侧栏,也可以在名为“一列”的特殊页面模板上根本不显示侧栏。

SO网友:Rachit

您可以通过以下方式使用vc或wordpress编辑器创建多个侧栏:https://codecanyon.net/item/custom-sidebar-visual-editor-wordpress-plugin/17329853

相关推荐

Action when sidebars updated

侧边栏更新后是否会触发任何操作?例如,对于菜单,我使用wp_update_nav_menu, 但我没有找到任何方法来使用侧边栏做类似的事情。