某项目需要获取当前网站的语种(基于 WPML 的多语种网站),如果仅仅是 WPML 的话,使用其定义的常量 ICL_LANGUAGE_CODE 即可获取当前的语种代码,问题是如果 WPML 未启用呢?网站架构是多站呢?度娘和谷哥都没给出答案,看来不能偷懒了。
作用与用途在说明中已经说的够清楚了!这里就不再多说啥了。
How to get the wordpress current languange attribute? the answer is here!
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; |