大阿拉伯文固定链接不起作用

时间:2014-10-22 作者:The 15 Seconds

我在permalink中有个错误,我有一篇文章标题很大,比如:-

مراجعة : Sony Xperia Z2 و إيجابياته و سلبياته و كل ما تريد معرفته عن الجهاز !
现在,在我的网站上打开帖子时,我会看到permalink,如:-

www.domain.com/مراجعة-sony-xperia-z2-و-إيجابياته-و-سلبياته-و-كل-ما

Its read only 11 word

但我将permalink结构设置为/%postname%/。

为什么它得不到所有的帖子标题?

update:-

我搜索并查看解决我的问题的代码:-

// first of all lets remove standard hook
remove_filter( \'sanitize_title\', \'sanitize_title_with_dashes\' );

// add our custom hook 
add_filter( \'sanitize_title\', \'wpse8170_sanitize_title_with_dashes\', 10, 3 );
function wpse8170_sanitize_title_with_dashes( $title, $raw_title = \'\', $context = \'display\' ) {
    $title = strip_tags($title);
    // Preserve escaped octets.
    $title = preg_replace(\'|%([a-fA-F0-9][a-fA-F0-9])|\', \'---$1---\', $title);
    // Remove percent signs that are not part of an octet.
    $title = str_replace(\'%\', \'\', $title);
    // Restore octets.
    $title = preg_replace(\'|---([a-fA-F0-9][a-fA-F0-9])---|\', \'%$1\', $title);

    if (seems_utf8($title)) {
        if (function_exists(\'mb_strtolower\')) {
            $title = mb_strtolower($title, \'UTF-8\');
        }
        $title = utf8_uri_encode($title, 1000); // <--- here is the trick!
    }

    $title = strtolower($title);
    $title = preg_replace(\'/&.+?;/\', \'\', $title); // kill entities
    $title = str_replace(\'.\', \'-\', $title);

    if ( \'save\' == $context ) {
        // Convert nbsp, ndash and mdash to hyphens
        $title = str_replace( array( \'%c2%a0\', \'%e2%80%93\', \'%e2%80%94\' ), \'-\', $title );

            // Strip these characters entirely
            $title = str_replace( array(
            // iexcl and iquest
            \'%c2%a1\', \'%c2%bf\',
            // angle quotes
            \'%c2%ab\', \'%c2%bb\', \'%e2%80%b9\', \'%e2%80%ba\',
            // curly quotes
            \'%e2%80%98\', \'%e2%80%99\', \'%e2%80%9c\', \'%e2%80%9d\',
            \'%e2%80%9a\', \'%e2%80%9b\', \'%e2%80%9e\', \'%e2%80%9f\',
            // copy, reg, deg, hellip and trade
            \'%c2%a9\', \'%c2%ae\', \'%c2%b0\', \'%e2%80%a6\', \'%e2%84%a2\',
            // grave accent, acute accent, macron, caron
            \'%cc%80\', \'%cc%81\', \'%cc%84\', \'%cc%8c\',
        ), \'\', $title );

        // Convert times to x
        $title = str_replace( \'%c3%97\', \'x\', $title );
    }

    $title = preg_replace(\'/[^%a-z0-9 _-]/\', \'\', $title);
    $title = preg_replace(\'/\\s+/\', \'-\', $title);
    $title = preg_replace(\'|-+|\', \'-\', $title);
    $title = trim($title, \'-\');

    return $title;
}

1 个回复
SO网友:sakibmoon

这取决于您使用的编码。如果您查看wp_posts, 你会看到的post_name 字段为varchar(200)

因此,它最多可以存储200字节的数据。如果您正在使用UTF-16 编码时,需要4个字节来存储阿拉伯字符。因此,它最多可以存储50个阿拉伯字符。

对于不同的编码,它将是不同的。看见https://stackoverflow.com/questions/4322191/how-many-bytes-do-we-need-to-store-an-arabic-character

结束

相关推荐

Custom permalinks structure

我希望有这样的结构:www.mysite.com/2013 (必须显示2013年的所有职位)www.mysite.com/my-category/2013 (必须显示2013年和“我的类别”类别的所有帖子)www.mysite.com/my-category/my-tag/ (必须显示所有类别为“我的类别”和标记为“我的标记”的帖子)www.mysite.com/my-category/ (必须显示“我的类别”类别的所有帖子)www.mysite.com/my-