Non latin post slug truncate

时间:2012-03-28 作者:spartacus

我创建了一个自定义的post类型,并将其permalink结构设置为“category/postname”。

我发现,有时,当我用非拉丁字符创建帖子时,帖子的开头会被删掉。

我在google上发现,post guid字段和post\\u name字段限制为255和200个字符。还注意到这些字段中的值(对于非拉丁语段塞)是经过编码的(如%85%e0%e0%b2%b2%b5%e0%b2%b0%e0%b2),这占用了更多的空间。

我的数据库是utf8编码的,collate是utf8\\u general\\u ci。我尝试了其他排序,但没有成功。

有没有办法解决这个问题,这样无论permalink的结构是什么或标题长度如何,我的slug都能保持完整?

谢谢

1 个回复
SO网友:Tom J Nowell

不,这不完全可能。

WordPress正在使用Percent encoding 消毒鼻涕虫。您可以撤消此操作,它将提供非拉丁字符,但当您尝试访问页面时,浏览器会立即将这些字符替换为百分比编码字符。

数据库是否会存储这些字符,而表编码是不相关的,因为这些数据是通过HTTP发送的,URL的约定是ASCII,它不支持这些字符代码。

至于长度不超过255个字符,这是因为the slug and post_name columns in the database 最大长度为200。您需要将其更改为具有更长的段塞,但我强烈建议您不要这样做。

一般认为URL是拉丁ASCII字符的严格子集。我知道有一些非标准的中文域名,但我不确定浏览器是如何处理这些域名的。

结束

相关推荐

Double slash in upload URLs

Wordpress正在设置»媒体中自动向我的自定义上传文件夹添加尾部斜杠。这会导致上载URL(例如,通过媒体上载程序上载的图像)获得双斜杠,如所示。com/files//myfile。jpg公司发生的情况如下:“我转到设置”媒体下Uploading Files 在标记的字段中Store uploads in this folder, 我输入files, 没有尾部斜杠。(这与文本字段旁边列出的示例一致:Default is wp-content/uploads)点击“保存更改”重新加载页面,上载文件夹现在f