如何以用户友好的方式在不同页面上显示不同的小部件

时间:2012-04-13 作者:Pete

我正在寻找一个插件,让用户选择哪些小部件出现在各个页面上。

有一些解决方案,我发现没有一个对非技术用户来说是真正容易的。我试过了

  • Woo Themes Sidebar manager - 功能强大,但用户需要经过大量培训才能理解模板、边栏和小部件-非常混乱Widget context 和Widget logic, 在我看来,这两项对于普通用户来说都很困难
我看到了一个使用Genesis框架的好看的解决方案(simple sidebars) - 这是正确的方法。用户可以从页面编辑器中选择小部件。对我来说,这是最重要的一点。

那么,有没有人知道有哪些插件(不使用Genesis)允许在页面选择侧边栏时使用相同的插件?

4 个回复
SO网友:MidhuN

如果需要,您可以创建自己的侧栏。

将以下内容添加到functions.php

 register_sidebar(array(\'name\'=>\'Sidebar \',
    \'before_widget\' => \'<div class="widget">\',
    \'after_widget\' => \'</div>\',
    \'before_title\' => \'<p>\',
    \'after_title\' => \'</p>\',
));
您可以使用以下代码使用此小部件

<?php dynamic_sidebar(\'sidebar\')?>
希望这有帮助

SO网友:moraleida

尝试Display Widgets. 这是我大部分时间使用的,从Widgets设置中使用起来非常简单。也可以将其调整为一个元框。

SO网友:Anon

我使用Widget Context 为了实现这一点。真是太棒了flexible, 涵盖显示/隐藏小部件所需的几乎所有逻辑,如果没有,则允许创建自定义规则,如要显示/隐藏小部件的特定url。

更不用说它已经存在了很长一段时间,而且维护得很好。

SO网友:Brad Dalton

通过向调用模板文件中侧栏的代码添加条件标记,可以使用代码控制小部件的显示位置:

<?php if ( is_page(\'007\') && is_active_sidebar( \'your-sidebar\' ) ) : ?>
<div class="your-sidebar">
<?php dynamic_sidebar( \'your-sidebar\' ); ?>
</div>
<?php endif; ?>
调用小部件的另一种方法是直接在模板文件中或从函数文件中使用如下代码:

add_action( \'loop_start\', \'conditional_sidebar\' );

function conditional_sidebar() {

if ( is_page(\'007\') && is_active_sidebar( \'your-sidebar\' ) ) {

dynamic_sidebar( \'your-sidebar\', array(
\'before\' => \'<div class="your-sidebar widget-area">\',
\'after\'  => \'</div>\',
) );

    }
}
注意:只有在函数文件中注册了侧栏时,此代码才有效。

register_sidebar( array(
\'name\'         => __( \'Your Sidebar\' ),
\'id\'           => \'your-sidebar\',
\'description\'  => __( \'Only displays on page with I.D 007\' )
) );

结束

相关推荐

Subpages return 404 error

我将永久链接设置为http://site.com/%postname%/.我指的是这种类型的页面:http://codex.wordpress.org/Pages_Screen.所有第一级页面都可以正常工作。但子页面没有。对于第一级页面,我得到如下url:http://site.com/page/.对于第二级页面-http://site.com/page/subpage/.如果我使用永久链接http://site.com/?p=123 或http://site.com/2012/02/29/sample-