1

因此,我尝试使用 twitter 推文按钮从网页上发布推文。我直接使用来自 Twitter 的股票标准代码。

假设...

post_text = 我们只有“几个字符”来解释这里的事情

<a class="twittersocial" onClick="_gaq.push(['_trackEvent', 'Twitter', 'Share', '<?php echo get_permalink($post->ID)?>']); window.open('https://twitter.com/share?url=<?php echo urlencode(get_permalink($post->ID))?>&text=<?php echo urlencode(substr(get_field('post_text'),0,86))?>...&via=twitterhandle&hashtags=newpost','Ratting','width=550,height=400,0,status=0,scrollbars=1');"href="javascript:void(0);" name="Share a quote on Twitter" title="Share a quote on Twitter" ></a>

结果在推特弹出窗口中:

我们这里&#039;只有&quot;几个字符&quot;可以解释... http://www.domain.com/newpost-x/ #newpost via @twitterhandle

确保帖子不被 HTML 字符标记污染的最佳解决方案是什么?我希望解决方案尽可能轻,因为我正在替换一个非常繁重的社交媒体插件。

4

2 回答 2

1

解决方案

检查编码的 URL 字符串后,似乎'get_field 被表示为&#039;并随后被编码为%26%23039%3B(编码两次)

html_entity_decode 用于在将其编码&#039;'之前进行解码&#039;

substr(html_entity_decode(get_field('post_text'), ENT_QUOTES),0,156)
于 2013-08-20T20:40:00.353 回答
0

strip_tags()怎么样?

substr(strip_tags(get_field('quote_text')), 0, 86)

这将在执行子字符串之前删除所有 html 标记。

于 2013-08-20T09:25:44.680 回答