删除标记中的特殊字符,以便在保存时进行比较

时间:2016-05-09 作者:noreabu

是否有标签中不允许/允许的字符列表?还是有更复杂的规则?

我第一次遇到这个问题,一些标签可以用*-前缀,如:*BLA-BL-BLA 但其他人并非如此*BLA-BL-BLA blah.

但是在做了更多的测试之后,我发现,我不能添加像+BLA-BL-BLA blah 之后*BLA-BL-BLA blah. 反过来也不行。

似乎在进行比较之前会删除特殊字符,然后字符串与现有标记匹配。。。

1 个回复
最合适的回答,由SO网友:dan9vu 整理而成

基本上,当您添加新术语时,WordPress将使用term_exists() 在将术语添加到数据库之前对其进行验证。

  1. term_exists() 使用sanitize_title() 其中使用remove_accents()sanitize_title_with_dashes() 清理术语。

  2. remove_accents() 将所有重音字符转换为ASCII字符,并sanitize_title_with_dashes() 将输出限制为字母数字字符、下划线(\\-)和破折号(-),空格将转换为破折号,大写字符将转换为小写字符。

    WordPress也不允许创建在分类层次结构的同一级别具有相同术语段首字母的术语。

So, every characters which don\'t output the same term slug at the same level of a taxonomy hierarchy after passed through sanitize_title() function are allowed characters.