WP Statistics获取真实访客IP

2020-01-09 2309点热度 0人点赞 0条评论

WP Statistics获取访客真实IP设置

WP Statistics设置当中可以设置各种方法获取访客的真实IP,如下图所示,找到能够正确显示当前访客IP的方法

自定义获取访客IP的方法

具体方法可以参考此官方博客How to Sanitize user IP?
意思就是添加自定义的过滤器来对访客ip进行自定义处理。

add_filter( 'wp_statistics_sanitize_user_ip', 'sanitize_user_ip' );
function sanitize_user_ip( $user_ip ) {
    $ip_list = explode( ",", $user_ip );
    $user_ip = trim( $ip_list[0] );
    return $user_ip;
}

但是,不知道为啥,我在主题的functions.php中添加了以上代码,但是不起作用,不知道为啥了,使用下面的终极解决办法吧。

终极解决办法

如果以上方法都无效,那么直接修改WP Statistics的源码,来获取真实访客IP,文件路径:

wordpress/wp-content/plugins/wp-statistics/class-wp-statistics.php

修改类中的get_IP函数,在函数中直接实现获取真实访客IP的方法,如把放过滤器里边的函数放在这里实现。

//$user_ip = apply_filters( 'wp_statistics_sanitize_user_ip', $this->ip );
$ip_list = explode( ",", $this->ip );
$user_ip = trim( $ip_list[0] );

这里有个弊端,就是每次升级WP Statistics插件,都得重新改一遍,不过不知道我的过滤器函数为啥不起作用,不管了,先实现功能吧。

王显锋

激情工作,快乐生活!

文章评论