如何在WordPress中为多子域名编写类似is_page的if-else判断条件
WordPress子域名判断实现多语言变量赋值方案
第一步:封装自定义判断函数
先封装和is_page逻辑一致的is_subdomain判断函数,将以下代码添加到你当前使用的WordPress主题的functions.php文件,或者自定义功能插件的代码中:
function is_subdomain( $target_domain = '' ) { // 统一转为小写避免大小写匹配误差 $current_domain = strtolower( trim( $_SERVER['HTTP_HOST'] ) ); $target_domain = strtolower( trim( $target_domain ) ); return $current_domain === $target_domain; }
第二步:套用原有逻辑实现需求
函数添加完成后,就可以直接用和is_page完全一致的写法完成子域名判断、赋值语言变量:
<?php if ( is_subdomain('example.domain.com') ) { $language = 'pt'; } elseif( is_subdomain('example1.domain.com') ) { $language = 'es'; } elseif( is_subdomain('example2.domain.com') ) { $language = 'ar'; } else { $language = 'en'; } echo $language; ?>
注意事项
- 如果你站点使用了CDN、反向代理服务,需要先确认
$_SERVER['HTTP_HOST']可以获取到用户真实访问的域名,部分代理场景下需要替换为$_SERVER['HTTP_X_FORWARDED_HOST'],根据你的服务器实际配置调整即可。 - 函数中已做了小写转换和空白字符过滤,避免输入、访问时的格式问题导致匹配失败。
内容的提问来源于stack exchange,提问作者Ayaan
相关产品推荐
相关产品推荐

