Wordpress slug 问题与非拉丁字符

Rya*_*yan 5 wordpress

我在 WP 中使用永久链接:domain.com/category/post_name

问题是帖子名称包含非拉丁字符,例如中文、希伯来语和阿拉伯语。因此,它将它们编码为:%20%18%6b%20因此,它将每个符号的字符视为实际字符,最终长度是截断一些非常短的段的 3 倍。

如何解决这个问题?或者至少如何延长长度限制?我尝试将数据库字段“post_name”的长度从 200 扩展到 500,但它仍然被截短。

Ole*_*zov 3

您可以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;
}
Run Code Online (Sandbox Code Playgroud)

但是,要小心...糟糕的清理可能会带来安全风险...sql注入等...