函数SANITIZE_TITLE()似乎不工作

时间:2017-08-03 作者:zentechinc

我已经实现了一个权宜之计函数,它模仿了我认为这个函数应该做的事情,但我希望尽可能使用本机libs/函数。

<?php

phpinfo();

require_once("/data/[ignore]/[me]/wordpress-4.7.5/wp-includes/formatting.php");
require_once("/data/[ignore]/[me]/wordpress-4.7.5//wordpress-4.7.5/wp-includes/plugin.php");

$unsanitized_string = \'123 qwe ASD\';
$sanitized_string = sanitize_title($unsanitized_string);
echo $sanitized_string;

?>
从文档中here 我希望上面的代码返回如下内容:

123-qwe-asd
相反,它返回:

123 qwe ASD
此外,从代码enter link description here, 我看到它在使用过滤器。我想知道是不是我忽视了过滤器的问题。

鉴于此sanitize_title() 从1.0版左右就开始了,我发现看起来如此完整的东西不太可能被打破。有什么想法吗?

我对PHP和WordPress比较陌生,所以我相信大家都会对我的环境有一些疑问。而不是把所有的phpinfo() 进入这个帖子(似乎不安全),如果你需要查看任何设置,请告诉我,我会提供。

PHP Version => 7.0.19-1+deb.sury.org~xenial+2

1 个回复
SO网友:kero

正如您在source code of sanitize_title(), 该函数只做3件事

应用该功能remove_accents(), 假定要删除重音符号,请应用筛选器sanitize_title$title 或$fallback_title由于您只加载了部分WordPress文件,因此可能会丢失过滤器的所有优点。

我仔细研究了一下源代码sanitize_title_with_dashes() 正在做大部分工作。该函数位于/wp includes/formatting中。php,所以在您的情况下,我将结合使用此remove_accents() 就像这样

$sanitized_string = sanitize_title_with_dashes( remove_accents( $unsanitized_string ) );

结束

相关推荐

添加更新的发布日期PHP自定义主题

我的主题开发人员不会帮助我回答如何将此功能添加到当前主题。我查看了Wordpress文档,并尝试向函数中添加代码。php文件,但它将代码放在页面顶部。我试图添加Wordpress建议的PHP代码,但它打破了主题。看起来这是一个自定义代码,因为它是一个自定义主题。作者说要在文章中放置的主题。php。欢迎任何帮助。Currently:<2017年7月11日第0类评论Looking to have:2017年7月11日第0类评论中更新日期:2017年7月23日上午7:00 <!