限制非注册用户和非授权IP对WordPress的访问

之前一直使用WordPress作为部门的信息发布及内部交流平台,前段时间部门升级成中心,人数也由30人左右增加至100人左右,为此需要为每个部门搭建各自的平台,同时要限制非注册用户和非办公网出口IP的访问(也就是说来自办公网的访客可以浏览)。经过两天的研究,在此总结一下实现方法。

WordPress的版本为最新的3.0.1,涉及到的函数在低版本的WordPress中也完全兼容。先说一下实现的逻辑吧,首先判断是否为已登录的注册用户,如果是则显示页面、如果否则对访客IP进行判断;如果IP在允许列表内则显示页面,如果为否则跳转到WordPress的登录页面。

因为要作用于所有的WordPress页面,所以需要对当前主题的header.php进行修改。先把当前的header.php重命名,我把它重命名为header_user.php,然后新建一个header.php,代码如下:

将其中的IP和WordPress登录页面替换成你自己的就可以了,此外还可以通过修改用户的level_0这个数值来实现对不同权限用户的限制。

当然,如果仅仅需要通过IP限制访问,不需要新建一个header.php,把下面这段代码加在header.php里就可以,非授权IP可以跳转到一个类似404的提示页面:

"192.168.1.2") if ($_SERVER['REMOTE_ADDR'] <> "192.168.1.3") { header("Location: http://joys.name/404.html"); } ?>

屏蔽来自页面访问的同时,也要记得关闭RSS Feed的访问。我使用的是Feed Pauser插件,这个插件可以很好的兼容WordPress 3.x的多站点模式,可以分别对每个子站点的RSS Feed进行关闭。

其实实现以上功能应该很容易吧,不过作为一个不懂敲代码的人来说,着实不易啊~

添加新评论