WP_REDIRECT仅适用于主站点,不适用于其他站点

时间:2016-05-18 作者:Jeff

我的主要网站是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 或者只使用此代码并删除所有其他代码也不会有什么区别。

1 个回复
最合适的回答,由SO网友:Mark Kaplun 整理而成

get_option 是每个子站点的功能。换句话说,它只提供子站点中选项的值。

如果您想拥有netwrok范围的选项,应该使用get_site_optionupdate_site_option.

您还可以使用从特定子网站查询选项get_blog_option 并将主要子站点id作为参数传递给它,但在我看来,get_site_option 应优先考虑。

相关推荐

显示作者姓名PHP(自制插件)

我有一个需要帮助的问题,因为我自己找不到解决办法。我接管了一个网站,之前有人在那里创建了一个自制插件。。使用默认插件“Contact Form 7”,用户可以在页面上创建帖子。()https://gyazo.com/c8b20adecacd90fb9bfe72ad2138a980 )关于自行创建的插件“Contact Form 7 extender”,帖子是通过PHP代码在后台生成的(https://gyazo.com/115a6c7c9afafd2970b66fd421ca76a3)其工作原理如下:如果