一个不太常用的功能,百度了下,貌似没有找到相关文章。本文章教程针对有特定需求的博主,
要想自由的控制用户对你的WordPress博客的访问。你可以设定只有注册登录后的用户才能访问你的网页,思路其实很简单,先执行login.php 页面,当用户名和密码正确之后再转入index.php。
谈不上什么技术啦!简单说说操作方法
首先要达到用户登录可见网页内容的效果,那么首先肯定是对用户的一个判断。根据相对应的权限进行给予浏览和操作;
我们所用到的wordpress函数是
is_user_logged_in() 【判断用户是否已经登录】
我们首先进行第一步:自定义函数
在当前主题的function.php中添加如下代码
- /*判断用户是否登录*/
- function liveme_if_login() {
- if (!is_user_logged_in()) {
- auth_redirect();
- }
- }
在接着进行第二步:调用自定义函数
在当前主题的header.php中添加如下代码:
- <?php liveme_if_login(); ?>
现在就可以实现用户只有登录后才可以访问站点了。是不是觉得很简单,按照我的思路走下去,其实也是可以实现多种限制规则的。
现在我们开始拓展
如果你是想针对其中的某几篇文章或者某个分类的文章,又或者是某个页面添加该功能,也不是很难的事情。举个例子,如果你想对其中某几篇文章进行限制,你可以如法炮制:
- function liveme_if_login() {
- global $post;
- if (!is_single()) return;
- $ids = array(188, 185, 171); // array of post IDs that force login to read
- if (in_array((int)$post->ID, $ids) && !is_user_logged_in()) {
- auth_redirect();
- }
【说明:array中的那几个数字便是你想要进行限制的文章ID(怎么看文章ID?既可以看数据库,也可以进入该文章的编辑状态,地址栏中的“post=”后面的数字便是该文章的ID)】
如你只想对所有的具体文章页面进行限制,而其他的分类页面和首页等不进行限制,那么,你也可以这样:
- function liveme_if_login() {
- if (is_single() && !is_user_logged_in()) {
- auth_redirect();
- }
- }
经过耕博这么详细的讲解,相信各位童鞋已经不难看出是其中的is_single()起了位置判断的作用,那么你可以以此类推,对其他的页面进行自定义。我就不在一一举例说明了。
本文参考资料:(wordpress官方文档)
- Function Reference/is user logged in
- Function Reference/auth redirect
- Force Users To Login Before Reading Posts in WordPress
最后在啰嗦一句,插件的方法也是有的,安装Member only插件基本可以使得WordPress具备访问控制功能,满足大家的需求。
欢迎大家转载,文章地址 http://www.xgyeye.com/xian-zhi-you-ke-fang-wen.html
补充内容 (2013-4-11 11:36):
文章地址变更:http://jswp.org/xian-zhi-you-ke-fang-wen.html