某项目需要获取当前网站的语种(基于 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.
/** *作用:返回基于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; } } |
来源:
https://www.wpdaxue.com/wpml-multisite-language-attribute.html