连接site_url和字符串不起作用

时间:2018-07-31 作者:nielsv

我正在尝试连接site_url 还有一个字符串,但它不起作用。这就是我正在做的:

$myurl = site_url();
var_dump($myurl); 

$url = "https" . $myurl . "/inbox/?fepaction=viewmessage&fep_id=" . $inserted_message->ID;

var_dump($url); die;
输出如下所示:

string(31)“//zgp.mydomain.be“string(78)”https:/inbox/?fepaction=viewmessage&;fep\\u id=4813”

正如您所看到的,它没有合并。怎么会这样?

3 个回复
最合适的回答,由SO网友:jdm2112 整理而成

在不知道您要做什么的情况下,您似乎想要将查询变量附加到URL。WordPress有适当的处理方法,无需手动串接。

查看文档add_query_arg() 有关详细信息:https://developer.wordpress.org/reference/functions/add_query_arg/

您可以使用此函数重建URL并将查询变量附加到URL查询。有两种方法可以使用此功能;单个键和值或关联数组。

使用单个键和值:

add_query_arg( \'key\', \'value\', \'http://example.com\' );
将创建http://example.com/?key=value

使用关联数组:

add_query_arg( array(
    \'key1\' => \'value1\',
    \'key2\' => \'value2\',
), \'http://example.com\' );
这将创建http://example.com/?key1=value1&key2=value2

SO网友:Krzysiek Dróżdż

有时最简单的解决方案是最好的。。。

看看site_url reference.

它需要两个参数:

$path (字符串)(可选)要附加到站点url的路径。默认值:无

$scheme (字符串)(可选)返回url的协议上下文。设置$scheme将覆盖默认上下文。允许的值为“http”、“https”、“login”、“login\\u post”、“admin”或“relative”。默认值:null

正如您所见,您不需要所有这些代码。。。

您可以简单地使用:

$url = site_url(\'/inbox/?fepaction=viewmessage&fep_id=\' . esc_url($inserted_message->ID), \'https\');

SO网友:helle

你要找的是home_url().

这将返回站点的地址,而不是WP安装的路径。

结束