如何在WPML处于活动状态时获取默认域名?

时间:2016-08-04 16:34:44

标签: wordpress wpml

对于我编码的插件,我们使用域名来注册高级许可证。我们会根据我们的记录或其他内容对此进行检查,以确保他们已注册该网站,因此可以使用该插件的高级功能。

但是,我发现,当用户使用每种语言的不同域名的WPML时,注册只适用于一个默认域,因为这是用于注册的域名。

$domain = get_home_url();

这实际上是我用来获取该信息的功能。

有没有办法获取该网址,但总是检索一个常量默认值,无论加载哪个语言子域?如果他们有法语,西班牙语和英语,并且英语是默认的,它总是返回英文域名?

2 个答案:

答案 0 :(得分:1)

使用icl_get_home_url();函数由WPML文档推荐。 此外,您需要检查WPML是否已安装并处于活动状态。

您可以执行类似

的操作
$domain = get_home_url();

if ( function_exists('icl_object_id') ) { 
$domain = icl_get_home_url();
} 

答案 1 :(得分:0)

如果必须始终返回相同的域,请改用pop(),不建议使用icl_get_home_url()并且不执行您的要求。至少现在没有了……目前,icl_get_home_url()返回本地化域而不是默认域,就像wpml_home_url():https://wpml.org/documentation/support/creating-multilingual-wordpress-themes/home-page-link/

虽然也有WordPress多站点帐户,所以我建议以下内容:

get_option( 'home' );

这会绕过所有过滤,并应确保您始终获得用于验证的主网址/域。