如何在插入WordPress之前清理post_name值?

如何在插入WordPress之前清理post_name值?,wordpress,Wordpress,如何在插入WordPress之前清理post_name值?可以在以下位置找到一些解决方案: 此外,您可能希望按如下方式执行: $special_chars = array("?", "[", "]", "/", "\\", "=", "<", ">", ":", ";", ",", "'", "\"", "&", "$", "#", "*", "(", ")", "|", "~", "`", "!", "{", "}"); $post_name = str_replace('

如何在插入WordPress之前清理post_name值?

可以在以下位置找到一些解决方案:

此外,您可能希望按如下方式执行:

$special_chars = array("?", "[", "]", "/", "\\", "=", "<", ">", ":", ";", ",", "'", "\"", "&", "$", "#", "*", "(", ")", "|", "~", "`", "!", "{", "}");
$post_name = str_replace(' ', '-', str_replace($special_chars, '', strtolower($post_name)));
$special\u chars=array(“?”、“[”、“]”、“/”、“\\”、“=”、“、”、“:”、“;”、“、”、“、”、”、“&“、”、“$”、“*”、“(、”、”、“、”、“、”、“、”、“!”、“{、”);
$post_name=str_replace(“”,“-”,str_replace($special_chars,”,strtolower($post_name));
简单:

$post_title = sanitize_title_with_dashes($post_title);

但是WordPress已经为你做了这件事。我想你需要它来做一些不同的事情吗?< /P> < P>我猜你是通过直接SQL插入来消毒的。相反,考虑在插入脚本中使用WpPestPixEnter()。 $new_post_id = wp_insert_post(array( 'post_title' => "This <open_tag insane title thing<b>LOL!;drop table `bobby`;" )); $new\u post\u id=wp\u insert\u post(数组(


“post_title”=>“这@Anraiki:但它不使用破折号;-”不过,说真的,
sanitize_title()
post\u name
中留下了你不想要的空格。这很奇怪。除非,我读错了他们在那里展示的示例。“这个长标题就是我的帖子或页面可能是的”->“这个长标题就是我的帖子或页面可能是的”@Anaraiki-我的错。我读了代码
sanitize\u Title()
并假设在代码中调用的过滤器允许插件进行过滤,但core实际使用它。
sanitize\u title()
首先调用
strip\u tags()
,然后调用过滤器,该过滤器最终使用破折号()调用
sanitize\u title\u
。因此,除非有人担心HTML会悄悄进入,否则
使用破折号清理标题()
的性能稍高一点,可能是更好的选择。这个答案是错误的。下一个答案(使用破折号清理标题)是正确的。我们不是在重新发明轮子,而是在使用现有的API>