【发布时间】:2016-01-20 20:51:07
【问题描述】:
我找不到如何在网站创建时禁用默认小部件。我的意思是当我在 Wordpress 多站点网络中创建站点时,它不会自动创建诸如“元”之类的侧边栏小部件。
我看到两年多来没有更新的插件可能会帮助我解决这个问题,但我不想下载任何旧的东西。
有人知道怎么做吗?
【问题讨论】:
我找不到如何在网站创建时禁用默认小部件。我的意思是当我在 Wordpress 多站点网络中创建站点时,它不会自动创建诸如“元”之类的侧边栏小部件。
我看到两年多来没有更新的插件可能会帮助我解决这个问题,但我不想下载任何旧的东西。
有人知道怎么做吗?
【问题讨论】:
默认小部件是通过在wp_install_defaults() 和wp-admin/includes/upgrade.php 中调用update_option() 来创建的。
在wpmu_create_blog() 在wp-includes/ms-functions.php 中调用wp_install_defaults() 后,触发wpmu_new_blog 操作。
因此,您可以挂接到wpmu_new_blog 并通过再次调用update_option() 来删除默认小部件,这次为sidebar-1 使用一个空数组。
add_action('wpmu_new_blog', function($blog_id){
switch_to_blog($blog_id);
update_option('sidebars_widgets',
['wp_inactive_widgets' => [], 'sidebar-1' => [], 'sidebar-2' => [],
'sidebar-3' => [], 'array_version' => 3]);
restore_current_blog();
});
【讨论】:
我相信 unregister_widget 是您正在寻找的。
【讨论】: