Wordpress RTL,将RTL添加到主题

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

例如,我有一个 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 文件

致以诚挚的问候

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

我不知道您使用的是什么翻译插件,所以我假设它是 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 文件中的

子主题


0
投票

我不明白如果 if (ICL_LANGUAGE_CODE !== 'en') { // 加载 RTL 样式

第二语言是ar(阿拉伯语) 主题有 13 个 css 文件


0
投票

最好的方法:

if(is_rtl()){
            wp_enqueue_style( 'theme-rtl-style', get_template_directory_uri() . '/style-rtl.css', array(), '1.0.0' );
    }
© www.soinside.com 2019 - 2024. All rights reserved.