带有非拉丁字符的Wordpress slug问题

带有非拉丁字符的Wordpress slug问题,wordpress,Wordpress,我在WP中使用permalinks作为:domain.com/category/post\u name 问题是邮政名称有非拉丁字符,如中文、希伯来文和阿拉伯文。因此,它将它们编码为:%20%18%6b%20,因此它将每个符号的字符作为实际字符进行计数,最终长度是截断一些非常短的段塞的3倍 如何解决这个问题?或者至少如何延长长度限制?我曾尝试将数据库字段“post_name”的长度从200扩展到500,但它仍然缩短了。这是一种常见的情况,也让我感到沮丧 检查这个插件 您可以在插件配置页面上设置最大

我在WP中使用permalinks作为:
domain.com/category/post\u name

问题是邮政名称有非拉丁字符,如中文、希伯来文和阿拉伯文。因此,它将它们编码为:
%20%18%6b%20
,因此它将每个符号的字符作为实际字符进行计数,最终长度是截断一些非常短的段塞的3倍


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

这是一种常见的情况,也让我感到沮丧

检查这个插件

  • 您可以在插件配置页面上设置最大url长度。 (默认值:35个字符。)
  • 您还可以选择编辑提供的停止字列表

  • 希望这会有所帮助。干杯

    为什么不在创建/保存永久链接时删除这些坏字符

    您可以通过应用
    sanitize\u title
    的过滤器来更改
    post\u name

    简短示例:

    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')

    我还会禁用任何插件并再次测试你的永久链接。也许你的一个插件正在和你的帖子混在一起。

    对于非英语URL: 我将IIS与fcgi结合使用,并在web上的不同位置找到了非英语slug的解决方案: 希伯来语: 有关IIS7 URL重写和符号的更多信息: 通常,除了需要添加到wp-config.php末尾的pretty url的IIS配置外:

        if (isset($_SERVER['UNENCODED_URL']))
    $_SERVER['REQUEST_URI'] = $_SERVER['UNENCODED_URL'];
    

    你会发现关于未编码的\u URL的更多信息

    你在哪个HTTP服务器上运行Wordpress?@eggyal我目前在运行Apache的XAMPP上运行它。我已经安装了它,但它没有帮助,WP仍然会截断slug,我猜这个插件不是为了延长长度限制,而是为了进一步缩短它。非常感谢@Oleg,这非常有帮助!