wordpress类别的&符问题

时间:2010-05-01 11:59:14

标签: php wordpress ampersand

我有一系列类别,其中一些有&即事件和娱乐。 我的脚本导入这些类别,并使用其名称获取每个类别的ID。 即:$cat_id = array(get_cat_id($linearray[0]),get_cat_id($linearray[1]),get_cat_id($linearray[2]),get_cat_id($linearray[3])); 然后我的脚本使用这些类别ID向wp添加帖子。 我的问题是我导入的类别与&不是进口的。 这些相同的类别(发送电子邮件通知时)会中断&的电子邮件。 有一个简单的解决方法吗?

3 个答案:

答案 0 :(得分:0)

当您撰写帖子时,您可以在&处写&而不是&,而不会出现任何问题。

您也可以使用str_replace函数将其转换为&,例如:

$new_text = str_replace('&', '&', $your_string);

答案 1 :(得分:0)

我认为在某些情况下,我对Wordpress使用了自己的自定义慢行功能:

function sluggify($text) {
   $text = strtolower(htmlentities($text));
   $text = str_replace("&", "and", $text);
   $text = str_replace("andamp;", "and", $text);
   $text = str_replace(get_html_translation_table(), "-", $text);
   $text = str_replace(" ", "-", $text);
   $text = preg_replace("/[-]+/i", "-", $text);
   return $text;
}

请注意两条重复的行:

$text = str_replace("&", "and", $text);
$text = str_replace("andamp;", "and", $text);

尽管重复,但这是非常必要的!

对于下面的无知评论者-这是一个可重用的函数,您可以在其中传递任何字符串值,并且该函数会被使用。因此,适用于上述情况。

答案 2 :(得分:0)

有一个 WP 内置函数:

$new_text = wp_specialchars_decode($your_string);

来自documentation

<块引用>

将许多 HTML 实体转换为它们的特殊字符。 具体处理:&、<、>、"和'.