怎么在WordPress中使用PHP脚本判断访客的来源

  介绍

怎么在WordPress中使用PHP脚本判断访客的来源?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

1。区分网站功能

这个博客有翻译文章的功能,这是为了方便海外访客阅读文章,但对中国人显得十分多余。所以我通过IP判断国家,对中国大陆地区屏蔽翻译功能。

2。区分展示广告
比如中国大陆地区在侧边栏最下方看到的是拿福能的广告,而其他地区看到的是谷歌的广告。hostucan是我的一个广告主,有英文网站,也有中文网站,所以我可以向他提供区分展示服务,免得浪费流量。

3。屏蔽布点服务
海外有很多好的服务平台,在网站上布点即可采集数据和分享文章。但很不幸,因为某些原因,他们在国内展示效果并不好,不但没有起到应有效果,还让页面加载时间变长。可以对大陆访客屏蔽这些布点。

<>强在PHP通过IP区分国家

如何用PHP通过IP区分国家和地区呢?Maxmind.com提供一套GeoIP的解决方案,只需要简单几步即可在PHP中通过IP判断访客的国家。

1。下载数据库和PHP库文件

下载GeoID.dat。广州,解压为GeoIP。dat文件。
下载geoip.inc。
2。通过PHP代码获取国家信息
以下是一段示范代码,演示如何获取国家代号和国家名称。

 & lt; php ?
  ,//,引入,PHP 库文件
  包括(“geoip.inc");
  ,//,打开本地数据库,,数据保存在,GeoIP 文件中。
  $ geoData =, geoip_open (& # 39; GeoIP.dat& # 39;,, GEOIP_STANDARD);
  ,//,获取国家,IP
  countryCode 美元;=,geoip_country_code_by_addr(地理数据,美元$ _SERVER [& # 39; REMOTE_ADDR& # 39;]);
  ,//,获取国家名称
  countryName 美元;=,geoip_country_name_by_addr(地理数据,美元$ _SERVER [& # 39; REMOTE_ADDR& # 39;]);
  ,//,关闭本地数据库
  geoip_close($地理数据);
  ,
  ?在

<强>在WordPress中通过IP区分国家

既然PHP上使用没问题,WordPress肯定也是好了的。看看我是怎么使用的。

1。放置数据库文件
将GeoIP。dat解压到WordPress根目录中。(你可以在这个目录找到wp-config。php或者wp-config-sample。php文件)

2。编写调用接口
在主题目录中新建文件夹包括,将geoip。公司放置在新建文件夹中。并在该文件夹新建文件geoip。php文件内容如下。

 & lt; php ?
  ,
  包括(& # 39;geoip.inc& # 39;);
  ,
  global  countryCode美元;
  ,
  $ geoData =, geoip_open (& # 39; GeoIP.dat& # 39;,, GEOIP_STANDARD);
  countryCode 美元;=,geoip_country_code_by_addr(地理数据,美元$ _SERVER [& # 39; REMOTE_ADDR& # 39;]);
  geoip_close($地理数据);
  ,
  祝辞;

这里只取国家代号作为判别依据。并且国家代号是全局变量,以避免页面多处判断需要反复访问GeoIP。dat获取信息,减少程序开销。

2。调用接口,获取国家代号
3。打开的头。php文件,在文件顶部加入代码如下。

 & lt; ? php 包括(& # 39;包括/geoip.php& # 39;);, ?在

4。使用国家代号
在主题中调用代码,例子如下。

 & lt; php ?
  ,
  global  countryCode美元;
  ,
  if ($ countryCode ==, & # 39; cn # 39;), {
  ,//中国大陆地区执行的代码
  },else 如果(countryCode 美元==,& # 39;我们# 39;),{
  ,//美国地区执行的代码
  },{else 
  ,//中国大陆和美国以外地区执行的代码
  }
  ,
  祝辞;


可能有人会问,加这么个东西,性能如何?会不会要求强大的服务器吗?我测试过,正常的服务器上几乎不影响页面加载性能,可以看看这个博客的速度。如果不放心,自己测一下。

<>强PS:采用IP查询API接口
国内不少互联网公司例如腾讯,新浪以及淘宝都有IP查询接口,直接调用查询即可。

(1)腾讯IP分享计划

代码如下:


/* *根据腾讯IP分享计划的地址获取IP所在地,比较精确*/函数getIPLoc_QQ (ip1美元){$ url=& # 39; http://ip.qq.com/cgi-bin/searchip?searchip1=& # 39; ip1美元;$ ch=curl_init ($ url); curl_setopt ($ ch CURLOPT_ENCODING & # 39; gb2312 # 39;); curl_setopt (ch美元CURLOPT_TIMEOUT 10); curl_setopt ($ ch CURLOPT_RETURNTRANSFER真实);//获取数据返回$结果=curl_exec (ch);结果=mb_convert_encoding美元(美元的结果,“utf-8",“gb2312");//编码转换,否则乱码curl_close (ch); preg_match (“@< span> (. *) & lt;/span> & lt;/p> @iU",因此,美元ipArray美元);loc=ipArray美元[1];返回loc美元;}

怎么在WordPress中使用PHP脚本判断访客的来源