将esc_url与硬编码url一起使用

时间:2016-01-19 作者:kashan

我在我的主题中添加了以下URL,但我被告知我必须使用esc_url(). 我想不出,如何将该函数与以下代码一起使用?

<a href="http://pinterest.com/pin/create/button/?url=<?php echo urlencode( get_the_permalink() ); ?>&amp;media=<?php echo urlencode($thumbnail); ?>&amp;description=<?php echo urlencode( get_the_title() ); ?>" target="_blank">Pinterest</a> 

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

我觉得你需要它。例如,您正在URL中使用标题,并且您正在以友好方式获取标题;因此,您永远无法确切知道标题是否可以在URL中使用。所以,最好使用它。

仅举一个例子:标题包含white spaces and white spaces need to be enconded to be used in URLs.

我将首先构建完整的URL字符串,然后使用esc_url() 目前,它用于某些属性值。

$url_params = array(
    \'url\'         => get_the_permalink(),
    \'media\'       => $thumbnail,
    \'description\' => get_the_title()
);

$url = "http://pinterest.com/pin/create/button/?" . http_build_query( $url_params );

echo \'<a href="\' . esc_url( $url ) . \'">Pinterest</a>\';