site_url() 调用函数 get_site_url(),它在 wp_options 表中查找名为“site_url”的选项。更改配置文件不会对其产生任何影响。
您可以做的是在需要使用其他内容的页面上对 site_url 应用过滤器。get_site_url() 函数的最后一部分内容如下:
return apply_filters('site_url', $url, $path, $scheme, $blog_id);
因此,如果您想修改返回的值,请将类似这样的内容添加到主题的 functions.php 文件中:
add_action('template_redirect', 'modify_site_url');
function modify_site_url(){
/** check if you're on one of the pages that requires the change */
if(is_page(array('page-one', 'page-two'))){
add_filter('site_url', 'new_site_url', 10, 4);
}
}
function new_site_url($url, $path, $scheme, $blog_id){
/** modify the url here */
$url = whatever you want it to be;
return $url;
}
在 new_site_url 函数中,它不使用附加参数($path、$scheme、$blog_id),但您可以使用这些参数来进一步细化 url 的修改方式。