使用MU插件定义多站点网络上新站点的默认设置

时间:2018-05-02 作者:Tianreagon

我已经为Wordpress建立了多站点网络。我已经搜索了几个小时,似乎找不到多少关于为网络上创建的所有新站点设置自定义默认值的文档。

我正在使用安装了子主题的主题。

首先,我希望在网络上创建的所有新站点的默认主题都是我安装的子主题,每个新站点都以基本的默认静态首页开始。

这是否可行,或者我是否应该将其作为功能添加到mu插件中:

/** Sets default theme for new sites on network */
define( \'WP_DEFAULT_THEME\', \'theme-child\');
其次,我创建的每个新站点都需要向网络上的所有管理员提供访问权限。允许他们自动在所有站点上工作。

我应该尝试创建一个mu插件吗?如果是,请给出一些指导,或者如果有不同的方法,请给出建议。我没有用php编写太多代码。请告知如何做到这一点。

谢谢

1 个回复
SO网友:Tianreagon

所以我想出来了:我在wp config中添加了默认主题:

// Setting default theme for newly created sites 
define( \'WP_DEFAULT_THEME\', \'theme-child\' );
对于我添加的静态首页:

# ON SIGNUP OF NEW SITES A NEW PAGE IS CREATED CALLED "Homepage" AND SET AS 
THE STATIC FRONT PAGE

add_action( \'wpmu_new_blog\', \'process_extra_field_on_blog_signup\', 10, 6 );

function process_extra_field_on_blog_signup( $blog_id, $user_id, $domain, 
$path, $site_id, $meta ) {
switch_to_blog($blog_id);


$new_page_title = \'Homepage\'; //page title
$new_page_content = \'TEST\'; //content of page goes here
$new_page_template = \'\'; //page template.

$page_check = get_page_by_title($new_page_title);
$new_page = array(
        \'post_type\' => \'page\', 
        \'post_title\' => $new_page_title,
        \'post_content\' => $new_page_content,
        \'post_status\' => \'publish\',
        \'post_author\' => 1,
);
if(!isset($page_check->ID)){
        $new_page_id = wp_insert_post($new_page);
        if(!empty($new_page_template)){
                update_post_meta($new_page_id, \'_wp_page_template\', $new_page_template);
        }
}

$homepage = get_page_by_title( \'Homepage\' );
if ( $homepage )
{
    update_blog_option( $blog_id, \'page_on_front\', $homepage->ID );
    update_blog_option( $blog_id, \'show_on_front\', \'page\' );
}
restore_current_blog();
}
现在,我只需要在新创建的站点上设置所有用户的管理员。

结束