当我从我的Word Press帖子中获取标题代码并将其作为电子邮件传递时,标点符号会有点受损。
例如,"TAMAGOTCHI P’S LOVE & MELODY SET"
标记为"TAMAGOTCHI P’S LOVE & MELODY SET"
。
我如何阻止这种想法?
如果您需要查看我目前使用的特定代码,请告诉我。 (我不确定这是WordPress问题还是PHP问题。
修改 会发生什么是通过查询字符串将此标题传递给表单。然后,当提交表单时,我从表单字段中获取字符串并通过电子邮件发送。
所以我想在将其传递到表单字段之前,或者在我发送电子邮件之前,我需要解码html。
编辑2 很奇怪,所以我仔细查看代码,在将值传递给表单字段之前,我已经在做一个urldecode
jQuery('#product_name').val("<?php echo urldecode(strip_tags($_GET['pname'])); ?>
序列化时(对于ajax formhandler)是否会发生一些默认编码
var dataString = $(this).serialize();
编辑3 好的事实证明代码更复杂。标题也会在它触及表单之前传递给某种wordpress会话。我会弄明白我需要把urldecode放到哪里。谢谢!
答案 0 :(得分:1)
这是一个WordPress“功能”我无法做到。
这是一种用于替换花式引号(或其他实体)的简单方法:
$title = get_the_title( get_the_ID() );
$title = str_replace( '’', "'", $title );
echo $title;
如果您希望在整个网站中使用相同的去实体功能,我们可以通过挂钩the_title
来更深入地集成。此代码块将属于主题的functions.php
文件。
function reform_title($title, $id) {
$title = str_replace( '’', "'", $title );
return $title;
}
add_filter('the_title', 'reform_title', 10, 2);
答案 1 :(得分:0)
我对wordpress不太确定,但问题本身就是它的文本以URLENCODE而不是UTF-8或其他编码形式出现。
您有两个选择
当您收到文本时,您永远不会将其恢复为正常编码(这很奇怪,因为当您访问$ _GET或$ _POST变量时,通常会通过php对其进行解码)
您正在使用urlencode()函数解析消息。