css - Wordpress RTL,将 RTL 添加到主题
问题描述
例如,我有一个 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
。
推荐阅读
- json - 在 map[string]interface{} 的值上键入 switch to []map[string]interface{}
- forms - Xamarin WebView 未加载来自 webrtc 的流
- python - 在 Python 速成课程练习中数小时无法解决 NameError
- c# - XMLSerializer 找到未知节点
- php - 保护 Markdown 生成的 HTML 上的 XSS
- azure-sdk-.net - 从存储在另一个存储帐户中的 VHD 创建 OS 磁盘
- bash - 如何仅获取 bash ssh 版本号?
- javascript - 如何将数据从 api 推送到数据集中
- react-native - 如何使 createMaterialTopTabNavigator tabBar 背景颜色为线性渐变
- flutter - 如何在颤振中使用 Navigator.pop() 方法传递多个值?