对于我编码的插件,我们使用域名来注册高级许可证。我们会根据我们的记录或其他内容对此进行检查,以确保他们已注册该网站,因此可以使用该插件的高级功能。
但是,我发现,当用户使用每种语言的不同域名的WPML时,注册只适用于一个默认域,因为这是用于注册的域名。$domain = get_home_url();
这实际上是我用来获取该信息的功能。
有没有办法获取该网址,但总是检索一个常量默认值,无论加载哪个语言子域?如果他们有法语,西班牙语和英语,并且英语是默认的,它总是返回英文域名?
答案 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' );
这会绕过所有过滤,并应确保您始终获得用于验证的主网址/域。