我的插件创建自定义小部件,我如何通过编程将它们添加到现有的侧边栏小部件区域?

时间:2011-03-13 作者:Scott B

好的,我可以创建代码将自定义小部件添加到小部件管理器。检查

我的下一个挑战是,在同一个插件中,在激活期间,检查我的主题是否存在,如果是活动的,用我刚刚创建的自定义小部件预先填充小部件区域。

我希望这是有意义的。如果我能做到这一点,它将节省大量时间来配置(并解释如何配置)我的默认主题设置,这在很大程度上依赖于自定义小部件。像optin电子邮件表单、自定义滑块小部件等。。。

如果有人能在这里帮助我,请提前感谢。

这里是我的主题的默认侧边栏。。。

if ( function_exists(\'register_sidebar\') )
    register_sidebar(array(
        \'name\' => \'Home Sidebar\',
        \'id\' => \'home-sidebar-widget\',
    ));

if ( function_exists(\'register_sidebar\') )
    register_sidebar(array(
        \'name\' => \'Home Header Area\',
        \'id\' => \'home-header-widget\',
    ));

if ( function_exists(\'register_sidebar\') )
    register_sidebar(array(
        \'name\' => \'Inside Header Area\',
        \'id\' => \'inside-header-widget\',
    ));

if ( function_exists(\'register_sidebar\') )
    register_sidebar(array(
        \'name\' => \'Home Footer Area\',
        \'id\' => \'home-footer-widget\',
    ));

if ( function_exists(\'register_sidebar\') )
    register_sidebar(array(
        \'name\' => \'Inside Footer Area\',
        \'id\' => \'inside-footer-widget\',
    ));

if ( function_exists(\'register_sidebar\') )
    register_sidebar(array(
        \'name\' => \'Inside Sidebar\',
        \'id\' => \'inside-sidebar-widget\',
    ));

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

侧栏在选项中注册\'sidebars_widgets\'.要查看其中的内容和不包含的内容,请尝试以下操作:

add_action( \'wp_footer\', \'show_my_sidebars\' );

function show_my_sidebars()
{
    $sw = get_option( \'sidebars_widgets\' );
    print \'<pre>\' . htmlspecialchars( print_r( $sw, TRUE ) ) . \'</pre>\';
}
示例输出:

Array 
(
[sidebar-footer-left] => Array 
( 
[0] => archives-3 
)
[sidebar-footer-right] => Array 
( 
[0] => recent-comments-3 
)[array_version] => 3 
)
因此,请根据签入选项activation hook 并插入您的小部件,如果它们还没有在那里。

并停止使用if ( function_exists(\'register_sidebar\') ). 你真的想支持四年前的WP版本吗?

结束

相关推荐

Why use widgets?

我对使用WordPress很陌生,我想知道使用小部件的好处是什么?看here 这听起来像是为那些不是程序员的人准备的,他们想在他们的网站上添加插件。对吗?或者小部件是否在某种程度上使站点更加健壮?