获取多站/多语种 ( 基于 WPML ) WordPress 网站当前的语种

某项目需要获取当前网站的语种(基于 WPML 的多语种网站),如果仅仅是 WPML 的话,使用其定义的常量 ICL_LANGUAGE_CODE 即可获取当前的语种代码,问题是如果 WPML 未启用呢?网站架构是多站呢?度娘和谷哥都没给出答案,看来不能偷懒了。

作用与用途在说明中已经说的够清楚了!这里就不再多说啥了。

How to get the  wordpress current languange attribute? the answer is here!

Getting the current language attribute of your wordpress website based on WPML or none,compatible with multi-site architecture.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
 *作用:返回基于WPML的多语种网站当前的语种,如果WPML未启用,则返回其默认语种的code,兼容多站;
 *用法:
 *$get_lang_attr = new GET_LANG_ATTR();
 *$get_lang_attr=$get_lang_attr->cwp_get_current_lang_attribute();
 *echo $get_lang_attr;
 *作者:suifentgec 
 */
class GET_LANG_ATTR{
    public function is_someone_plugin_activated($plugin_name){
        $plugin_name=trim($plugin_name);
        if(!empty($plugin_name)){
            $active_plugins = (array) get_option( 'active_plugins', array() );
            if ( is_multisite() )
                $active_plugins = array_merge( $active_plugins, get_site_option( 'active_sitewide_plugins', array() ) );
            foreach ( $active_plugins as $plugin )
                if ( strpos( $plugin, $plugin_name ) ) return true;
            return false;
        }else{
            return false;
        }
    }
    public function cwp_get_current_lang_attribute(){
        $is_wpml_activated=$this->is_someone_plugin_activated('/sitepress.php');
        if($is_wpml_activated){
            global $sitepress;
            $languge_attribute=$sitepress->get_current_language();
        }else{
            $languge_attribute=get_bloginfo( 'language' );
        }
        return $languge_attribute;
    }
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
欢迎关注我们的微信公众号:WPDAXUE

coolwp.net

只要是地产商拥护的,我们都反对,除了世界和平与宇宙和谐,但他们貌似就是为了破坏这些为生的。

4 条评论

  1. 请问有设置获取访问者的ip来判定访问者的国家,让网站自动展示某一国家的语言呢?

发表评论