我在谷歌上搜索了很多,所以如果有抄本条目,我真诚地道歉,但就我的一生而言,我找不到一条关于“slug”中可以接受哪些字符的硬性规则(任何slug都可以,但更具体地说,对于这种情况下的自定义帖子类型)。
目前,我们有一种情况,即我们有一些具有slug结构的自定义post类型,如(pseudo):
some_Context_Thats_Not_A_Category_slug/sub_context_thats_not_a_category_slug/
+ 帖子标题
中的段grey
是整个“鼻涕虫”。实际上,这看起来像是说:
hamburgers/cheeseburgers
作为柱状段塞
在这种情况下是否允许/安全使用正斜杠?
接受答案的标准:
对提出的问题回答“是”或“否”,并链接到我可以在哪里找到当代WP slug规则集。
提前感谢!
最合适的回答,由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个或多个连字符)将被替换为单个连字符,前导和尾随连字符将被删除,这就是完整的标题清理过程!