我建议将其移动到插件中,而不是在主题中进行,然后在主站点上激活它。我遵循的规则是,如果它将影响外观,那么它将进入主题;如果它影响了功能,那么它会进入插件。在我看来,这是一个功能性的东西。
wp-content/plugins/my-ms-redirector/my-ms-redirector.php
:
<?php
/*
Plugin Name: My MS Redirector
Description: Redirects to /ie, /uk, etc based on geoip
*/
add_action( \'init\', \'wpse206906_redirector\' );
function wpse206906_redirector() {
$url = $_SERVER[\'REQUEST_URI\'];
require_once("geoip.inc");
$gi = geoip_open(dirname(__FILE__) . "/GeoIP.dat", GEOIP_STANDARD);
$country_code = geoip_country_code_by_addr($gi, $_SERVER[\'REMOTE_ADDR\']);
geoip_close($gi);
if ($url === "/") {
//If IE go to /ie
if ($country_code === "IE") {
wp_redirect( \'http://www.wpmultisite.com/ie\' ) ;
exit();
}//If GB go to /uk
if ($country_code === "GB") {
wp_redirect( \'http://www.wpmultisite.com/uk\' );
exit();
}
}
}
参考文献
wp_redirect()
init
hook(我知道die()
和exit()
功能相同,但我倾向于使用exit()
当我只想结束PHP执行时die()
当我想抛出错误时。这是个人喜好。)