Wordpress RTL,将RTL添加到主题

Wordpress RTL , Add RTL to theme

提问人:ُEcarv 提问时间:8/11/2018 最后编辑:PaebbelsُEcarv 更新时间:11/18/2023 访问量:970

问:

例如,我有一个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 在访问者浏览时使用标准 css 文件英语 (LTR) 并在访问者浏览阿拉伯语时使用 RTL css 文件

此致敬意

CSS WordPress 从右到左

评论


答:

1赞 Ale 8/11/2018 #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进行翻译,则应检查您的翻译插件支持什么函数或全局变量来获取此信息。然后只需替换语句中的 ICL_LANGUAGE_CODE 变量即可。if

此代码应添加到文件中的子主题中。functions.php

0赞 ُEcarv 8/12/2018 #2

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

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

0赞 umusi 11/18/2023 #3

最好的方法:

if(is_rtl()){
            wp_enqueue_style( 'theme-rtl-style', get_template_directory_uri() . '/style-rtl.css', array(), '1.0.0' );
    }