我的主要网站是https://www.domain.com/
, 我所有的多站点都将https://www.domein.com/multisite1/
链接我在functions.php
这将检查选项(在管理面板中)是真是假。如果为真,则所有站点应重定向到https://maintenance.domain.com
.
PHP 7:
// Check if user is on login page
function is_login_page() {
return in_array($GLOBALS[\'pagenow\'], array(\'wp-login.php\', \'wp-register.php\'));
}
// Check maintenance mode
function nmai_maintenance() {
$options = get_option(\'nmai_section_enable_maintenance_id\');
$redirecturl = get_option(\'nmai_section_maintenance_url_id\');
// If is admin
if ($options == 1 && ! is_admin() && ! is_network_admin() && ! is_user_logged_in() && ! is_login_page()) {
// Check the url
if (empty($redirecturl)) {
wp_redirect(\'https://maintenance.domain.com\');
exit();
}
else {
wp_redirect($redirecturl);
exit();
}
}
}
add_action(\'wp_loaded\', \'nmai_maintenance\');
此代码适用于主站点(
https://www.domain.com/
) 并将其重定向,但我的所有其他网站将只转到其主页。我试过了
wp_safe_redirect
, 并已使用
init
而不是
wp_loaded
但这没什么区别。将此PHP代码放在
functions.php
或者只使用此代码并删除所有其他代码也不会有什么区别。
最合适的回答,由SO网友:Mark Kaplun 整理而成
get_option
是每个子站点的功能。换句话说,它只提供子站点中选项的值。
如果您想拥有netwrok范围的选项,应该使用get_site_option 和update_site_option
.
您还可以使用从特定子网站查询选项get_blog_option 并将主要子站点id作为参数传递给它,但在我看来,get_site_option
应优先考虑。