我正在开发一个Wordpress插件。我可以在界面中添加三个自定义小部件和一个动态侧边栏。如果用户没有设置,我正在尝试将一些默认的小部件加载到侧边栏中。
function rs_sidebar_setup() {
// register sidebar
$rs_sidebar_opts = array(
'name' => __('Social Media Updates'),
'id' => 'social-updates',
'description' => __('Displays recent posts from social media sites'),
'before_widget' => '',
'after_widget' => ''
);
register_sidebar($rs_sidebar_opts);
}
add_action('widgets_init', 'rs_sidebar_setup');
if ( !function_exists('rs_default_widgets') ) :
function rs_default_widgets() {
// get active widgets from database
$widgets = get_option('sidebars_widgets');
//if(empty($widgets['social-updates'])) {
// add new widgets to our sidebar if the sidebar is empty
//$widgets['sidebar-social-updates'] = array('calendar-3', 'rapidsocialfacebookwidget-1', 'rapidsocialfwitterwidget-1', 'rapidsociallinkedinwidget-1');
$widgets['social-updates'] = array('calendar-3');
update_option('sidebars_widgets', $widgets);
//}
print_r(get_option('sidebars_widgets'));
}
add_action('widgets_init', 'rs_default_widgets', 11);
endif;如果这是我的自定义窗口小部件的问题,我尝试使用内置窗口小部件-仍然不好。print_r语句确认数据库已更改,但我仍然没有在我的社交媒体更新侧栏中看到日历小部件。
我试着将同样的get_option/update-option技术和一个内置于21个主题的侧边栏结合使用,它起作用了,所以我想这可能是加载顺序的问题,但我不知道。有什么想法吗?
发布于 2013-08-08 23:19:16
对于任何偶然发现这一点的人,这里有一个解决方案和关于程序员SE的非常详细的文章:https://wordpress.stackexchange.com/questions/26557/programmatically-add-widgets-to-sidebars
https://stackoverflow.com/questions/14843521
复制相似问题