【问题标题】:WPML - get sorted list of all plugin languages, both active and inactiveWPML - 获取所有插件语言的排序列表,包括活动和非活动
【发布时间】:2017-03-30 04:11:38
【问题描述】:

我想获得 WPML 插件中包含的所有语言的完整列表,无论它们是否处于活动状态。函数icl_get_languages() 仅返回站点上处于活动状态的语言,因此在这里不起作用。语言列表应该以当前语言环境的语言返回,并且应该按照特定语言对单词进行排序(例如,英语:A -> Z,日语:ア -> オ)。

我确实“回答了您自己的问题”,解决方案如下。完全归功于以下(我的解决方案基本上只是这三个粘在一起):

【问题讨论】:

    标签: php wordpress wpml


    【解决方案1】:

    如果有人找到了更清洁的方法,请分享。

    <?php
    
    function get_all_langs_names( $lang ) {
    
        global $wpdb;
    
        $lang_data = array();
    
        $languages = $wpdb -> get_results( 
    
            $wpdb -> prepare( "
                SELECT code, english_name, active, tag, name 
                FROM {$wpdb -> prefix}icl_languages lang 
                INNER JOIN {$wpdb -> prefix}icl_languages_translations trans 
                ON lang.code = trans.language_code 
                AND trans.display_language_code=%s", 
            $lang )
    
        );
    
        foreach( $languages as $l ) {
    
            $lang_data[$l -> code] = array(
                'english_name' => $l -> english_name,
                'active' => $l -> active,
                'tag' => $l -> tag,
                'name' => $l -> name,
            );
    
        }
    
        return $lang_data;
    
    }
    
    // get language tag of current site locale...
    $code = ICL_LANGUAGE_CODE;
    
    $lang_tag = $wpdb -> get_var("
        SELECT tag 
        FROM {$wpdb -> prefix}icl_languages 
        WHERE code='{$code}'"
    );
    
    // ... and then get language names associated with that tag
    $languages = get_all_langs_names( $lang_tag );
    
    // sort language array alphabetically, or however current language orders words
    function sort_languages( $a, $b ) {
    
        return strcmp( $a['name'], $b['name'] );
    
    }
    
    usort( $languages, 'sort_languages' );
    
    print_r( $languages );
    

    【讨论】:

      猜你喜欢
      • 2019-03-30
      • 2023-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-22
      • 2021-07-21
      • 2018-05-15
      相关资源
      最近更新 更多