我正在使用自定义安装。在多站点安装中创建站点时,php-in/wp-content/可以克服一些默认设置。在大多数情况下,这很容易,而且工作得很好。不过,我在小部件方面有困难。我想要的小部件就是搜索小部件和我们内部使用的自定义元小部件。
在wp\\u install\\u defaults()函数中,我有以下内容。。。
<?php
function wp_install_defaults( $user_id ) {
global $wpdb, $wp_rewrite, $table_prefix;
...
lots of stuff setting up default settings and default content
...
// Set up default widgets for default theme.
update_option( \'widget_search\', array ( 2 => array ( \'title\' => \'\' ), \'_multiwidget\' => 1 ) );
update_option( \'widget_vvnumetawidget\', array ( 2 => array ( \'title\' => \'\' ), \'_multiwidget\' => 1 ) );
update_option( \'sidebars_widgets\', array ( \'wp_active_widgets\' => array (), \'sidebar-1\' => array ( 0 => \'search-2\', 1 => \'vvnumetawidget-2\' ), \'sidebar-2\' => array (), \'sidebar-3\' => array (), \'array_version\' => 3 ) );
...
a few more options are set
...
}
不过,这基本上是可行的。。。最初,侧栏中只显示搜索小部件。如果我转到Widgets admin屏幕,自定义元小部件就会出现在它应该出现的位置,并显示为活动状态。如果我单击它的保存按钮,它就会正确地显示在公共侧边栏中。
在更新了侧栏窗口小部件选项之后,我尝试为我的窗口小部件运行另一个update\\u选项。
update_option( \'widget_vvnumetawidget\', array ( 2 => array ( \'title\' => \'Second update\' ), \'_multiwidget\' => 1 ) );
这确实有效,因为标题得到了更新,但它仍然无法公开显示,直到我手动转到管理屏幕并单击保存。对于搜索小部件,我不必这样做。
你知道我错过了什么吗?
在查看了数据库选项表后,我看到了一些让我疑惑的事情,这是否是因为我的自定义小部件是一个插件?例如,安装后,我看到以下选项。。。
sidebars\\u小部件
a:3:{s:19:"wp_inactive_widgets";a:0:{}s:9:"sidebar-1";a:2:{i:0;s:8:"search-2";i:1;s:16:"vvnumetawidget-2";}s:13:"array_version";i:3;}
widget\\u搜索
a:2:{i:2;a:1:{s:5:"title";s:0:"";}s:12:"_multiwidget";i:1;}
widget\\u vvnumetawidget
a:2:{i:2;a:1:{s:5:"title";s:0:"";}s:12:"_multiwidget";i:1;}
此时,面对公众,我的侧边栏中只有搜索小部件。如果我转到管理员,搜索和我的自定义元小部件将位于侧边栏的活动区域(即使我的自定义元小部件没有显示)。如果我为我的自定义元小部件单击“保存”,它现在会公开显示,如果我检查选项表中的内容,它现在是。。。
小部件
a:2:{i:2;a:9:{s:5:"title";s:0:"";s:8:"register";N;s:5:"login";s:1:"1";s:8:"entryrss";s:1:"1";s:10:"commentrss";s:1:"1";s:10:"nipissingu";s:1:"1";s:10:"showcustom";N;s:9:"customurl";s:0:"";s:10:"customtext";s:0:"";}s:12:"_multiwidget";i:1;}
所以,现在我觉得我也需要在安装中为我的自定义小部件设置这些默认值。php文件,或者在我的自定义小部件的php中,测试是否存在这些默认值,并在那里设置适当的行为,因为它现在将不存在默认值视为0而不是null。
我会测试并报告。