在Web浏览器的URL字段中获取土耳其语字母字符

时间:2019-05-08 作者:theforamyst

我想制作一个土耳其语的WP网站,在webbrowser和WP的URL字段中显示正确的土耳其语字母字符,而不是英语字母字符。我已经试过了,但没有成功。所发生的不是这些土耳其语字符:“乔克·古泽尔·比尔·萨克斯·亚普姆·亚普姆·亚普米斯拉尔·努姆·兹德基勒”,而是显示了他们的“近亲”英语字符,如:“科克·古泽尔·比尔·萨西·亚普米斯拉尔·奥努穆兹德基勒”。

我不知道为什么会发生这种情况,以及我如何在WP的URL中获得这些正确的土耳其字符。有人有主意吗?

我现在是如何做到的:我手动安装了WP并编辑了WP配置。php文件输入我的数据库值并输入以下值:

数据库字符集:我将其保留为utf8,因此:

define(\'DB_CHARSET\', \'utf8\');
DB\\U COLLATE:我读到数据库排序规则通常应为空,但土耳其语网站除外,这些网站需要有:“utf8\\U Turkish\\U ci”。因此:

define(\'DB_COLLATE\', \'utf8_turkish_ci\');
所以我已经在一个土耳其语网站上做了所有这些,但是URL字段仍然没有显示正确的土耳其语字母,而是显示最接近的英语字母。

所以我想知道:是什么决定了哪些字母的字符会显示在URL字段中?

我需要做什么才能完成这件事?

1 个回复
SO网友:MikeNGarrett

功能[sanitize_title()][1] 生成段塞。此函数随后调用remove_accents(). 此函数位于/wp-includes/formatting.php 并包括所有字符转换的映射(仅供参考)。

这仅在的“保存”上下文中发生sanitize_title() 这是默认值。

不需要删除重音符号,但它有助于确保posts段塞只包含某些字符。要取代它,您必须构建自己的remove_accents() 包括土耳其语特殊字符。

Assuming you\'ve done this and called it my_remove_accents(), let\'s move forward.

function my_sanitize_title( $title, $raw_title ) {
    return my_remove_accents( sanitize_title_with_dashes( $raw_title ) );
}
add_filter( \'sanitize_title\', \'my_sanitize_title\', 99, 2 );
sanitize_title_with_dashes() 已添加到sanitize_title 筛选而不是从sanitize_title() 作用调用此函数不会替换任何重音字符。

相关推荐

Date Language doesn't change

我已经为我的wordpress网站切换到了意大利语,它正确地显示了翻译,但当我尝试使用此代码检索日期和时间时echo \"<span class=\'date\' style=\'margin-left:-20px;\'>\"; echo date(\'l, jS F, Y\'); echo \"</span>\"; 它给了我一个英语输出。为什么会这样?