xxxi有the_title()
返回一些文字,在本例中为Blue & Whiny
如何将Blue & Whiny
变为Blue & Whiny
我尝试过:htmlspecialchars_decode(the_title())
,html_entity_decode(the_title())
,htmlspecialchars(the_title())
一无所获。
我想将&
转换为&
没有太多要分享的代码,我只是这样做:<?php the_title() ?>
我得到Blue & Whiny
。如果我使用get_the_title()
它不会显示任何内容
有什么想法吗? 感谢
EDIT1。生病分享一些代码:
<script type="text/javascript">
function showShareUI() {
var act = new gigya.services.socialize.UserAction();
act.setUserMessage("Check out this article.");
act.setTitle("Trends on Explore Talent - <?php the_title(); ?>");
act.setDescription("<?php get_the_content(); ?>");
act.setLinkBack("<?php the_permalink(); ?>");
act.addActionLink("Check out this article", "<?php the_permalink(); ?>");
var image = {
src: 'http://xxx.com/wp-content/uploads/2011/05/BOTTOM_BANNER.jpg',
href: '<?php the_permalink();?>',
type: 'image'
}
act.addMediaItem(image);
var params =
{
userAction: act, // The UserAction object enfolding the newsfeed data.
onError: onError, // onError method will be summoned if an error occurs.
onSendDone: onSendDone // onError method will be summoned after
,showEmailButton: true
// Gigya finishes the publishing process.
};
gigya.services.socialize.showShareUI(conf, params);
}
function onError(event) {
alert('An error has occured' + ': ' + event.errorCode + '; ' + event.errorMessage);
}
function onSendDone(event)
{
document.getElementById('status').style.color = "green";
document.getElementById('status').innerHTML = 'The newsfeed has been posted to: ' + event.providers;
}
</script>
我已经尝试了一切。这开始让我烦恼......
答案 0 :(得分:11)
html_entity_decode()
是正确的方法。
html_entity_decode("Blue & Whiny");
将产生:
蓝&amp;烦躁
如果它不起作用,请确保没有其他问题 - 例如将字符串传递给双重编码的字符串,或稍后再次在字符串上运行htmlentities()
。
演示:http://codepad.org/BHXGWXJi
使用文字字符串和var_dump()
输出进行仔细检查,您应该看到解码后的版本。然后是var_dump(the_title())
,以确保您实际上将您认为的内容传递给html_entity_decode()
。
答案 1 :(得分:5)
html_entity_decode应该做到这一点。如果没有,请尝试指定第三个参数$charset
。
类似的东西:
echo html_entity_decode(the_title(), ENT_QUOTES, 'UTF-8');
答案 2 :(得分:3)
the_title()
直接打印标题,因此直接在其周围添加html_entity_decode()
将无效。但是,您可以使用其第三个函数参数禁止打印。 E.g。
<?php echo html_entity_decode(the_title('', '', false)) ?>
还有get_the_title()
,它不会直接打印标题,但它需要您想要标题的帖子的ID,与the_title
相比,它打印当前的标题在The Loop发帖。所以你需要做这样的事情:
<?php echo html_entity_decode(get_the_title($post->ID)) ?>
实际上,你应该能够做到:
<?php echo $post->post_title ?>
这些实用程序功能的唯一原因是为了逃避事情并添加标签和内容。如果您只想要原始输入,可以直接打印。
这不会解决您的所有问题,因为您在JavaScript字符串中回显它,因此您需要转义某些字符。 json_encode()
应该可以解决问题,但请查看问题"Pass a PHP string to a Javascript variable (including escaping newlines)"了解更多详情。
答案 3 :(得分:2)
试试这个:
echo(mb_convert_encoding(the_title(), "UTF-8", "HTML-ENTITIES"));
答案 4 :(得分:1)
看看这是否适用于你
$convmap = array (0x0, 0xffff, 0, 0xffff);
//$str = mb_decode_numericentity (the_title(), $convmap, 'UTF-8' );
$str = mb_decode_numericentity ("&", $convmap, 'UTF-8' );
echo $str;
http://www.php.net/manual/en/function.mb-decode-numericentity.php