似乎答案比我想象的要简单得多,所以我想我也会为那些偶然发现这个问题的人分享答案。
很明显,我在数据库中缺少了所需的内容,所以我也在拖动小部件前后对数据库进行了SQL转储。然后比较发生的变化。这有助于我分析需要加入的内容。结果是我没有正确地输入小部件设置。简单地说,我是在添加
Array
(
[title] => Policies
)
WordPress期望的时间:
Array
(
[2] => Array
(
[title] => Policies
[_multiwidget] => 1
)
)
所以我的代码看起来更像这样:
function se160609($blog_id, $user_id, $domain, $path, $site_id, $meta) {
// Switch the newly created blog.
switch_to_blog($blog_id);
// Change to a different theme.
switch_theme("twentytwelve");
// Add WordPress options that the widget needs.
$widget_mywidget = array();
$widget_mywidget[2][\'title\'] = "Policies";
$widget_mywidget[2][\'_multiwidget\'] = 1;
update_option( \'widget_mywidget\', $widget_mywidget );
// Add WordPress options to override the default widgets.
$sidebar_widgets = get_option( \'sidebars_widgets\' );
$sidebar_widgets[\'sidebar-1\'] = array(\'mywidget-2\');
update_option( \'sidebars_widgets\', $sidebar_widgets );
// Restore the current blog.
restore_current_blog();
}
add_action(\'wpmu_new_blog\', \'se160609\');
为了解释这里的一些信息,请注意数组中的第一部分是
[2]
, 这是小部件的实例号-因为小部件可以多次添加,所以如果您想有多个小部件,基本上可以通过从数字2递增来构建数组。它可以通过给它一个数字来工作,但出于某种原因,2似乎是最好的起始数字(当为默认小部件创建新的多站点站点时,以及当您拖放时,它是首先分配的数字)。
[_multiwidget]
我还没有完全理解,但我想这是因为我正在制作一个可以在wpmu上工作的插件,所以这会将小部件设置为允许在多站点环境中看到(如果我错了,请纠正我)。