如何列出WP多站点语言

时间:2017-10-14 作者:Noman

如何获取多语言多站点的数组列表,例如我在site 1 想了解其他网站的语言site 2, site 3.

现场结构为:

EG (Egypt - with 2 languages)
------------------------
    EN | AR
------------------------
PK (Pakistan - Single language)
    EN
------------------------
LK (Srilanka - Single language)
    EN
我可以使用get_sites() 但我需要包含国家代码的二维数组,因为父级和子级包含可用的语言。

1 个回复
SO网友:Noman

通过查询wpml语言表来修复它。

通过sites 收到blog ids.

  • 查询每个博客(每个多站点)的ICL语言表Array &;相应地播放$blog_id == 1 使用了条件,因为基本站点没有带有表名的博客id前缀

    下面是函数

    function getSitesLanguages() {
        $blog_languages = array();
        global $wpdb;
        $sites = get_sites();
        foreach ( $sites as $key => $site ) {
            $blog_languages[ $site->blog_id ] = \'\';
            $blog_id                           = $site->blog_id . \'_\';
            if ( $blog_id == 1 ) {
                $blog_id = \'\';
            }
            $QUERY  = $wpdb->prepare( \'SELECT code FROM \' . $wpdb->base_prefix . $blog_id . \'icl_languages WHERE active =  %d\', 1 ).PHP_EOL;
            $result = $wpdb->get_results( $QUERY );
            if ( ! empty( $result ) ) {
                foreach ( $result as $key2 => $langObj ) {
                    $blog_languages[ $site->blog_id ][] = $langObj->code;
                }
            }
        }
    
        return $blog_languages;
    }
    

  • 结束

    相关推荐

    带有cPanel加载域和SSL的WordPress MultiSite

    我一直在谷歌上搜索,浏览各种文章,但现在似乎陷入了一片混乱!我拥有我的私人网站。com。该域已在托管的其他公司注册。它已经运行(非多站点)Wordpress一段时间了,Wordpress安装在一个子目录中。我在域上有一个SSL证书(由web主机提供),然后通过hosts cPanel插件为CDN启用了cloudflare。这一直运行得很好!昨天,我决定让我的公司重新焕发活力,并决定让它成为我第一个网站的多站点。我按照食品法典委员会的指示打开了我的私人网站。com的多站点安装,并为mycompany创建了一