玩WordPress » 技巧方法 » 2008 » 11 » 06 » 用WordPress打造注册用户才能查看文章的网站

用WordPress打造注册用户才能查看文章的网站

我们先来看一个小例子吧

主题底部常见的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打造出一个只有注册用户才能查看文章的网站了!

如果你对其中步骤有疑问,欢迎在这里留言提出。

11 Responses to “用WordPress打造注册用户才能查看文章的网站”

  1. asiapan says:

    不错,把那个查询次数和时间用上了

  2. Tina says:

    弱弱的问下…能不能支持就某个分类下的文章要注册用户才能查看?

  3. 冰古 says:

    当然是可以的
    某分类的文章要注册用户才可能查看,用下面的判断语句判断就行了:

    <?php if ( in_category(1) &#038;&#038; !current_user_can('level_0') )?>

    这句应该要添加到index.php等多个php文件中。

  4. Tina says:

    唔 好的.. 换新皮的时候试试…

  5. viva says:

    我按照上面的步骤都做好了,还是没有效果,是不是还要配置文件

  6. 木木 says:

    请问这样做了以后对搜索有影响吗?

  7. 木木 says:

    已经被收录的内容我就不管他了,我是想问对以后google等的收录有没有影响,会不会不被收录了,如果不被收录了那要如何解决呢?谢谢了。