例如,我有一个 WordPress 主题,其中包含多个 css 文件
style.css
assets/main.css
assets/pager.css
assets/blog.css
我希望我的网站包含阿拉伯语和英语两种语言(LTR 和 RTL) 但我的主题不支持 RTL 我通过创建新的 css 文件编辑了 css 文件中的所有方向
style.css
style-rtl.css
assets/main.css
assets/main-rtl.css
assets/pager.css
assets/pager-rtl.css
assets/blog.css
assets/blog-rtl.css
现在我想知道如何让 WordPress 在访问者浏览英语(LTR)时使用标准 css 文件,并在访问者浏览阿拉伯语时使用 RTL css 文件
致以诚挚的问候
我不知道您使用的是什么翻译插件,所以我假设它是 WPML。您需要做的是编辑加载样式的位置。您的代码应如下所示:
add_action( 'wp_enqueue_scripts', 'load_styles_by_language' );
function load_styles_by_language () {
// check what is the current language and if it is not English then load the RTL
if (ICL_LANGUAGE_CODE !== 'en') {
// load the RTL style
wp_enqueue_style( 'style_name', get_stylesheet_directory_uri . '/assets/main-rtl.css' );
} else {
// load the standard style
wp_enqueue_style( 'style_name', get_stylesheet_directory_uri . '/assets/main.css' );
}
}
ICL_LANGUAGE_CODE
是保存当前语言代码的 WPML 全局变量,因此如果您不使用 WPML 进行翻译,您应该检查您的翻译插件支持哪些函数或全局变量来获取此信息。然后只需替换 if
语句中的 ICL_LANGUAGE_CODE 变量即可。
此代码应添加到您的 functions.php
文件中的
子主题。
我不明白如果 if (ICL_LANGUAGE_CODE !== 'en') { // 加载 RTL 样式
第二语言是ar(阿拉伯语) 主题有 13 个 css 文件
最好的方法:
if(is_rtl()){
wp_enqueue_style( 'theme-rtl-style', get_template_directory_uri() . '/style-rtl.css', array(), '1.0.0' );
}