IP 到国别 WordPress插件
这是作者非常早期完成一个Wordpress 插件。该插件根据来访者的地址反查出国别省市点击 examples 查看例子。是基于ip2nation 提供的免费数据简单编程打包形成的插件.
建立MySQL表格
首先到 ip2nation 并下载 .sql文件 (本人未做数据镜像是因为数据更新比较频繁,这样的镜像做起来太累,还是自己下载的好,因为是压缩文件仅数百K) 这个 .sql 首先创建两个表, ip2nation 和 ip2nationCountries ,还包括一些敏感地址:)
新手指南 : 首先, 建议安装 PHPMyAdmin . 他非常友好的的帮助你操作MySQL数据库 。利用下载的sql文件就可以快速生成两个本插件需要的表.
下载插件
解压到插件目录
使用插件
本插件建立了两个标签"template tags"供在页面上使用 :
- wp_ozh_getCountryName() : 显示国别名(France, Belgium, Vanuatu, 等等).
- wp_ozh_getCountryCode() : 显示国别名 "代码" : 2 字母, 和两位顶级域名类似 (fr, be, it,cn等等)
这两个函数的可选参数为 :
- $display : 缺省为 0 (zero), 显示出结果(见下面的例子)
- $ip : 缺省为 $_SERVER['REMOTE_ADDR'], 访问者的 IP地址.
(注意 : 每个标签需要1 SQL查询.)
(注意 2 :命名插件和函数名称前缀为 "wp_ozh_" 防止与其他函数或插件文件名重复, 防止类似插件同名出现错误或混乱)
使用举例
举例如下,插件使用参考如下代码 :
-
<?php
-
echo "You are probably from " . wp_ozh_getCountryName( ) ."<br />" ;
-
echo "If so, your country flag is <img alt=" your flag"
-
src=" /images/flags/flag_"
-
. wp_ozh_getCountryCode( ) . ".gif" ><br />" ;
-
?>
The template wp_ozh_getCountryCode() goes well with this awesome tiny flags pack you've seen everywhere on the web (which were originally created by a guy I know, Zarkof, for this site , and are free to use, which is a nice gift considering the amount of pixel skills and time he must have put in these 175 flags 🙂
Passing the parameter "0" (zero) to a function could be useful for example to test a language redirection without printing anything. The following example determines wether the user is supposedly speaking French or not :
PHP:
-
<?php
-
$country = wp_ozh_getCountryName( 0 ) ;
-
switch ( $country ) {
-
case "France" :
-
case "Guadeloupe" :
-
case "Luxembourg" :
-
case "Monaco" :
-
case "Martinique" :
-
case "New Caledonia" :
-
case "French Polynesia" :
-
case "St. Pierre and Miquelon" :
-
case "Reunion" :
-
case "French Southern Territories" :
-
case "Wallis and Futuna Islands" :
-
echo "you speak French" ;
-
break ;
-
default :
-
echo "you may not speak French" ;
-
}
-
?>
你也可以把一个IP地址传给函数,调用函数显示国别, 可用于显示评论者的国别 : blogroot/wp-comments.php (WP 1.2) 或者 blogroot/wp-content/themes/yourtheme/comments.php (WP 1.5+), 在看到 <?php comment_author_link() ?> ,添加如下代码 :
-
<?php comment_author_link( ) ?> from
-
<?php wp_ozh_getCountryName( 1 ,$comment ->;comment_author_IP) ?>
运行时会显示诸如 : JohnDoe from India
显示小国旗 (like in comments here), 添加如下代码 :
-
<?php
-
echo '<img alt="your flag" src="/images/flags/flag_'
-
. wp_ozh_getCountryCode( 0 ,$comment ->comment_author_IP )
-
. '.gif">' ;
-
?>
免责声明Disclaimer
我不能保证ip2nation数据产生100%正确的结果。您可能会发现发生不正确结果,如“欧洲”或“美国Educationnal ” ,而不是一个具体国家。建议你吧发现的问题告诉 ip2nation
wrote, on 15/Dec/08 at 9:48 pm # :
Just a quick note on how I added support for this awesome plug into WordPress 2.7.
In the wp-includes folder there's a file called "comments-template.php". Open it and look for the following piece of code (it's on line 1226):
Replace it with the following lines (all between php tags of course)