php的strip_tags()不起作用

时间:2010-03-29 22:33:24

标签: php wordpress

我正在尝试调整一点wordpress,但我在php中为0级,所以我有点傻:/

我想添加一个自定义的'tweet this'按钮(我知道已经有很多它们,我只想自己做,为了好玩)

所以,我正在尝试这个:

<a href="http://twitter.com/home?status=<?php strip_tags(the_excerpt()) ?>" >tweet this</a>

the_excerpt()返回"<p> ... excerpt ... </p>",strip_tags函数不会删除那些<p>标记!

我做错了什么?

谢谢,对不起,如果这很明显。

2 个答案:

答案 0 :(得分:5)

您的问题是,the_excerpt()未将其内容返回strip_tags(),而是使用echo直接输出。所以strip_tags()(在做任何工作时需要前面的echo)不能做任何事情。

改为使用get_the_excerpt()(为清晰起见插入换行符,使用时删除):

<a href="http://twitter.com/home?status=
<?php echo strip_tags(get_the_excerpt()); ?>" >tweet this</a>

顺便说一句,我也会urlencode()摘录,如果它包含"双引号或其他有趣的字符,你一定会遇到麻烦。

答案 1 :(得分:0)

这看起来并不符合常识:<?php strip_tags(the_excerpt()) ?>,然后WP文档解释,the_excerpt's API doc,它说它回应而不是返回它。 好吧,使用ob_start解决方法。

ob_start("callback");
the_excerpt();
$excerpt = ob_get_contents();

?>
<a href="http://twitter.com/home?status=<?php echo strip_tags($excerpt) ?>" >tweet this</a>
<?php

注意:我没有任何WordPress API经验。