可能已经晚了,但我最近找到了一个过滤器解决方案:
function theme_set_url_scheme($url, $path, $blog_id){
if(isset($_GET["wp_port"])){
$parsed_url = parse_url($url);
$parsed_url["port"] = intval($_GET[\'wp_port\']);
$scheme = isset($parsed_url[\'scheme\']) ? $parsed_url[\'scheme\'] . \'://\' : \'\';
$host = isset($parsed_url[\'host\']) ? $parsed_url[\'host\'] : \'\';
$port = isset($parsed_url[\'port\']) ? \':\' . $parsed_url[\'port\'] : \'\';
$user = isset($parsed_url[\'user\']) ? $parsed_url[\'user\'] : \'\';
$pass = isset($parsed_url[\'pass\']) ? \':\' . $parsed_url[\'pass\'] : \'\';
$pass = ($user || $pass) ? "$pass@" : \'\';
$path = isset($parsed_url[\'path\']) ? $parsed_url[\'path\'] : \'\';
$query = isset($parsed_url[\'query\']) ? \'?\' . $parsed_url[\'query\'] : \'\';
$fragment = isset($parsed_url[\'fragment\']) ? \'#\' . $parsed_url[\'fragment\'] : \'\';
$url = "$scheme$user$pass$host$port$path$query$fragment";
}
return $url;
}
add_filter("admin_url", "theme_set_url_scheme\', null, 3);
然后打开customizer,将此querystring变量添加到末尾:
&wp_port=3000
我尝试在不添加querystring参数的情况下执行此操作,但我猜browsersync会将调用重定向回服务器端口80,因此3000自定义端口仅通过browser和browsersync可见。
更好的选择:
将querystring参数添加到browsersync设置中,如下所示:
options: {
proxy: \'wordpress.dev?wp_port=3000\',
}
因此,您不需要手动执行任何操作。它是现成的。