我们先来看一个小例子吧
主题底部常见的23 queries. 0.458 seconds. 对于普通浏览者意义不大,但作为blog管理员可以以此得知空间是否有异常、插件是否运行良好等情况,这部分内容普通浏览者可以不进行打印,只有当blog中注册或拥有更高权限的用户进行浏览才进行打印。
那么下面就看看怎么实现吧:
打开footer.php,通常你可以看到类似下面的一句(当然现在很多主题都删除了这句,如上所述,还是推荐保留)
<?php echo get_num_queries(); ?> queries. <?php timer_stop(1); ?> seconds.
用下面的代码覆盖它既可
<?php
if (current_user_can('level_0')){
?>
<?php echo get_num_queries(); ?> queries. <?php timer_stop(1); ?> seconds.
<?php
}
?>
上面代码的关键就是其中的current_user_can函数,它用于判断浏览者的等级或是否具有某项权限。可用的权限和等级可看WordPress Codex。上面的代码具体的行为是:如果浏览者的等级达到0或以上(注册用户最小等级就为0,未注册用户没有等级),就打印,如否则不进行打印。
用WordPress打造只有注册用户才能查看文章的网站
利用上面的函数,我们就可以很容易地打造一个只有注册用户才能查看文章的网站。
打开主题的index.php文件,找到类似下面的一段代码
<?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?>
在这段代码的前面添加
<?php if ( current_user_can('level_0') )
>
上面代码,请按需修改参数level_0,更多可选参数,查看WordPress Codex
拉到此文件的底部,找到
<?php endif; ?>
PS:这里的endif要对应最开始找的if。
然后在它的后面,添加
<?php else: ?> <div>没有权限查看</div> <?php endif; ?>
其中的没有权限查看修改为需要的字句或HTML代码。
你可能还要按照上面的方法对主题可能存在的single.php、page.php、archive.php、archives.php等文件进行修改。
恭喜你,到了这里你已经用WordPress打造出一个只有注册用户才能查看文章的网站了!
如果你对其中步骤有疑问,欢迎在这里留言提出。
不错,把那个查询次数和时间用上了
弱弱的问下…能不能支持就某个分类下的文章要注册用户才能查看?
当然是可以的
某分类的文章要注册用户才可能查看,用下面的判断语句判断就行了:
<?php if ( in_category(1) && !current_user_can('level_0') )?>这句应该要添加到index.php等多个php文件中。
唔 好的.. 换新皮的时候试试…
我按照上面的步骤都做好了,还是没有效果,是不是还要配置文件
[...] http://wanwp.com/tips-tricks/howto-use-wordpress-make-login-user-only-website/ [...]
请问这样做了以后对搜索有影响吗?
当然会有影响的,如果你的内容都被搜索引擎收录了,那就不会付费内容了。
已经被收录的内容我就不管他了,我是想问对以后google等的收录有没有影响,会不会不被收录了,如果不被收录了那要如何解决呢?谢谢了。
你可选择隐藏一部分内容,留一部分内容给google等收录就可以了。
例如把一篇文章的摘要不隐藏,而把其他内容隐藏。
恩恩,我也想到了,哈哈,谢谢。