【问题标题】:Wordpress multisite disable all default widgets on site creationWordpress 多站点禁用站点创建时的所有默认小部件
【发布时间】:2016-01-20 20:51:07
【问题描述】:

我找不到如何在网站创建时禁用默认小部件。我的意思是当我在 Wordpress 多站点网络中创建站点时,它不会自动创建诸如“元”之类的侧边栏小部件。

我看到两年多来没有更新的插件可能会帮助我解决这个问题,但我不想下载任何旧的东西。

有人知道怎么做吗?

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    默认小部件是通过在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();
    });
    

    【讨论】:

      【解决方案2】:

      我相信 unregister_widget 是您正在寻找的。

      【讨论】:

      猜你喜欢
      • 2014-02-11
      • 1970-01-01
      • 2012-03-13
      • 2019-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多