WordPress何时加载rtl.css?

问题描述 投票:0回答:1

我们有一个英文 WP 网站,现在也使用 GTranslate 支持阿拉伯语。

英文网站是https://www.example.com/ 阿拉伯语版本是https://www.example.com/ar/(注意/ar/是.htaccess重定向创建的虚拟目录)

现在,在学习了 WordPress 文档之后 https://codex.wordpress.org/Right-to-Left_Language_Support#Method_2:_rtl.css。它说创建一个 rtl.css 但没有说如何使用它。

基于其他文档,例如https://torquemag.io/2018/03/rtl-support-wordpress/,如果我将文件放在与 style.css 相同的目录下,WP 似乎会自动加载 rtl.css并且语言是rtl。

但是,根据我的测试,情况并非如此。我将 rtl.css 放在与 style.css 相同的目录中,然后执行阿拉伯语版本 https://www.example.com/ar/ 但在 Chrome DevTools 中,rtl.css 未加载。

所以,我只是想知道WP如何根据标签或其他东西确定是否应该加载rtl.css?

html css wordpress right-to-left
1个回答
0
投票

WordPress 使用函数

is_rtl()
来决定是否加载
rtl.css
文件。这个函数基于WordPress的作用是:

确定当前区域设置是否为从右到左 (RTL)。

由于网站的主要语言是英语,因此它总是会返回

false
,这将导致
rtl.css
无法加载。

因此,有两种方法来加载此文件。当 URL 包含 /ar 时,可以在

$text_direction
类初始化之前设置全局变量
WP_Locale
。或者根据类似的 URL 条件对
rtl.css
文件进行排队。

这是一个根据当前 URL 有条件地将样式排入队列的示例片段:

add_action('wp_enqueue_scripts', 'xyz_enqueue_styles');
function xyz_enqueue_styles()
{
    if (substr($_SERVER['REQUEST_URI'], 0, strlen('/ar')) === '/ar') {
        wp_enqueue_style(
            'rtl-style',
            get_stylesheet_directory_uri() . '/rtl.css',
            array(),
            '1.0.0'
        );
    }

}
© www.soinside.com 2019 - 2024. All rights reserved.