我们有一个英文 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?
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'
);
}
}