Wordpress,PHP,URL编码问题

Sco*_*rad 2 php wordpress urlencode

Wordpress提供了一个名为"the_permalink()"的函数,它返回,你猜对了!,在一个帖子循环中,给定帖子的永久链接.

我正在尝试URL编码永久链接,当我执行此代码时:

<?php
print(the_permalink());
$permalink = the_permalink();
print($permalink);
print(urlencode(the_permalink()));
print(urlencode($permalink));
$url = 'http://wpmu.local/graphjam/2008/11/06/test4/';
print($url);
print(urlencode($url));
?>
Run Code Online (Sandbox Code Playgroud)

它以HTML格式生成这些结果:

http://wpmu.local/graphjam/2008/11/06/test4/
http://wpmu.local/graphjam/2008/11/06/test4/
http://wpmu.local/graphjam/2008/11/06/test4/
http://wpmu.local/graphjam/2008/11/06/test4/
http%3A%2F%2Fwpmu.local%2Fgraphjam%2F2008%2F11%2F06%2Ftest4%2F
Run Code Online (Sandbox Code Playgroud)

我希望输出的第2,3和5行是URL编码的,但只有第5行是这样的.思考?

Jon*_*ski 12

根据文档,the_permalink打印永久链接vs返回它.所以,urlencode没有得到任何编码.

试试get_permalink.


[ 编辑 ]

编辑有点晚,但我没有意识到打印计数是一个问题.

这是他们全部来自的地方:

<?php
print(the_permalink());                                // prints (1)
$permalink = the_permalink();                          // prints (2)
print($permalink);                                     // nothing
print(urlencode(the_permalink()));                     // prints (3)
print(urlencode($permalink));                          // nothing
$url = 'http://wpmu.local/graphjam/2008/11/06/test4/'; 
print($url);                                           // prints (4)
print(urlencode($url));                                // prints (5)
?>
Run Code Online (Sandbox Code Playgroud)


Ozh*_*Ozh 7

the_permalink() 回应永久链接

get_the_permalink() 返回永久链接,以便将其分配给变量.

(与WordPress中的大多数函数一样:the_something()有一个get_the_something()来返回值而不是回显它)


Mat*_*ley 5

@Jonathan有理由,以及你应该在WordPress中处理它的方式(即使用正确的函数来完成工作).

以下是在没有返回字符串的函数时如何修复它:

ob_start();
the_permalink();
$permalink = ob_get_clean();
print(urlencode($permalink));
Run Code Online (Sandbox Code Playgroud)