使用PHP生成内部链接

时间:2018-04-09 13:25:59

标签: php wordpress shortcode wordpress-shortcode internal-link

我使用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']更安全吗?或者都被认为是不好的做法?

2 个答案:

答案 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_HOMEWP_SITEURL会覆盖网站网址的任何数据库设置,如果您访问Settings->General页面,则会看到这两个字段显示为灰色。< / p>