我使用localhost网站作为创建其他网站的基础。我通过查找当前域并使用短代码显示来使用php生成内部链接。我打算将我的网站上传到直播主机,因此域名将会更改,我的内部链接也不会被破坏。
//add shortcode that displays current site name
function GR_site_name(){
$currentDomain = $_SERVER['HTTP_HOST'];
return $currentDomain.'/wordpress';
}
add_shortcode('GR_site_name', 'GR_site_name');
?>
我通过将代码添加到实时网站来测试这一点,并且它运行良好。
我已经在how safe is $_SERVER["HTTP_HOST"]?阅读了该帖子,但是它将其详细说明为“通常不安全”。由于它运行的脚本。
$ _SERVER [' SERVER_NAME']比$ _SERVER [' HTTP_HOST']更安全吗?或者都被认为是不好的做法?
答案 0 :(得分:0)
使用define(' host',' https://example.com')制作配置文件,并在任意位置使用主机,将脚本上传到服务器时只需更改网址配置文件,你很高兴
答案 1 :(得分:0)
使用标准WP_HOME
&的组合WP_SITEURL
常量以及site_url()
函数。
我建议您为实际网站使用wp-config.php
的一个本地副本和另一个副本,然后将以下内容添加到其中:
define('WP_SITEURL', 'http://www.example.com/wordpress'); // Or 'http://localhost/wordpress' for the local copy
define('WP_HOME', 'http://www.example.com');
这样,您不需要自定义功能或短代码 - 只需在需要的地方拨打site_url()
即可获取WP网站的网址。
或者,如果您需要保留网站网址变量并接受指向它的任何内容:
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/wordpress');
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/wordpress');
如果您需要在帖子的上下文中保留短代码,可以将其更改为:
function GR_site_name(){
return site_url();
}
请注意,设置WP_HOME
和WP_SITEURL
会覆盖网站网址的任何数据库设置,如果您访问Settings->General
页面,则会看到这两个字段显示为灰色。< / p>