插件格式:可接受的字符?

时间:2014-06-10 作者:Brandt Solovij

我在谷歌上搜索了很多,所以如果有抄本条目,我真诚地道歉,但就我的一生而言,我找不到一条关于“slug”中可以接受哪些字符的硬性规则(任何slug都可以,但更具体地说,对于这种情况下的自定义帖子类型)。

目前,我们有一种情况,即我们有一些具有slug结构的自定义post类型,如(pseudo):

some_Context_Thats_Not_A_Category_slug/sub_context_thats_not_a_category_slug/ + 帖子标题

中的段grey 是整个“鼻涕虫”。实际上,这看起来像是说:

hamburgers/cheeseburgers 作为柱状段塞

在这种情况下是否允许/安全使用正斜杠?

接受答案的标准:

对提出的问题回答“是”或“否”,并链接到我可以在哪里找到当代WP slug规则集。

提前感谢!

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

不,正斜杠不允许在段塞中使用。然而,当试图在后期编辑屏幕上的slug中包含斜杠时,它们会自动删除。鼻涕虫通过使用sanitize_title().

不幸的是,没有简单的方法来解释slug中允许和不允许的内容,更不用说给出一组有效slug必须遵守的简单规则了。然而,我们可以非常简洁地总结出蛞蝓最重要的特征:a slug consists of solely lowercase alphanumeric characters, dashes and underscores, without 2 or more dashes in a row (sequences of underscores are allowed). Furthermore, a slug cannot start or end with a hyphen.

sanitize\\u title()

参数:

  • $title: 待消毒的标题$fallback_title (可选,默认为空字符串):如果已清理$title 结果是空的$content (可选,默认为“保存”):为其清理字符串的操作sanitize_title 行为方式如下(默认情况下$fallback_title$context 参数(未应用外部筛选器):

    重音字符(如“é”和“Ö”)替换为相应的“非重音”字符(在本例中,分别为“e”和“O”)

  • sanitize_title_with_dashes() 在生成的字符串上调用,可以在下面找到更长(更完整)的解释。

    使用破折号()清理\\u title\\u$title 参数sanitize_title_with_dashes() 还有两个参数,第一个未使用,第二个是内容,$context, 这是从sanitize_title (因此是“保存”)。sanitize_title_with_dashes() 做了很多事情,所以我将尝试解释它执行哪些步骤来清理字符串。

    除去所有HTML标记,除去八位字节中的标记(例如%20 对于空格),字符串将转换为小写的所有HTML实体,例如& 剥离所有点(.) 被连字符替换(-)WikiPedia on dashes), 除空格外,还将转换为连字符,一些特殊字符,如重音(如重音符)将被删除为“times”字符(×) 替换为“x”

  • 除字母数字字符外,所有字符、空格、连字符和下划线都将被删除,连字符序列(一行中有2个或多个连字符)将被替换为单个连字符,前导和尾随连字符将被删除,这就是完整的标题清理过程!

结束