我在 WP 中使用永久链接:domain.com/category/post_name
问题是帖子名称包含非拉丁字符,例如chinese、hebrew 和 arabic。因此它将它们编码为:%20%18%6b%20
因此它将每个符号的字符都视为一个实际字符,最终长度是它截断一些非常短的段的 3 倍。
如何解决?或者至少如何延长长度限制?我试图将数据库字段“post_name”的长度从 200 扩展到 500,但它仍然截短。
我在 WP 中使用永久链接:domain.com/category/post_name
问题是帖子名称包含非拉丁字符,例如chinese、hebrew 和 arabic。因此它将它们编码为:%20%18%6b%20
因此它将每个符号的字符都视为一个实际字符,最终长度是它截断一些非常短的段的 3 倍。
如何解决?或者至少如何延长长度限制?我试图将数据库字段“post_name”的长度从 200 扩展到 500,但它仍然截短。
您可以post_name
通过应用过滤器来更改sanitize_title
...
简短示例:
add_filter('sanitize_title', 'sanitize_title_custom', 10, 3);
function sanitize_title_custom($title, $raw_title, $context){
// do some proccesing with title or raw_title
// assign new result to $title ($title = str_replace(" ","-", $raw_title);// as example )
return $title;
}
但是,要小心......糟糕的消毒可能是安全风险...... sql注入等......
Wordpress 不应该像那样对您的帖子进行编码。我一直在为客户使用 utf8 字符和标题。它工作正常。
你确定你的数据库表的字符集是 utf8 吗?如果是这样,它是否被任何列覆盖?还要wp-config.php
检查define('DB_CHARSET', 'utf8');
我还将禁用任何插件并再次测试您的永久链接。也许你的一个插件正在搞砸你的帖子。
创建/保存永久链接时为什么不删除这些坏字符?