据说wordpress对特定对象有如下等级区分的:
- 管理员 Administrator: level 10
- 编辑 Editor: Level 7
- 作者 Author: Level 4
- 投稿者 Contributor: Level 2
- 订阅者 Subscriber: Level 0
上面的分级是wordpress2.5版本内的默认分级,只有注册登陆后的才有这种分级,普通访客属于0以下级别的,不知道现在3.0还有没有。
有了分级就可以根据针对不通级别显示内容了,比如管理员可见的:
<?php global $user_ID; if( $user_ID ) : ?> <?php if( current_user_can('level_10') ) : ?> [管理员可见内容] <?php endif; ?> <?php endif; ?>
也可以简单写成这样:
<?php if($GLOBALS['user_login']=='admin') { echo '[管理员可见内容]'; } ?>
对于不同级别的不同显示则可以通过下面的PHP判断来实现:
<?php if (current_user_can('level_10')) : ?> <?php print "管理员可见内容"; ?> <?php elseif (current_user_can('level_7')) : ?> <?php print "编辑可见内容"; ?> <?php elseif (current_user_can('level_4')) : ?> <?php print "作者可见内容"; ?> <?php elseif (current_user_can('level_2')) : ?> <?php print "投稿者可见内容"; ?> <?php elseif (current_user_can('level_0')) : ?> <?php print "订阅者可见内容"; ?> <?php else : ?> <?php print "对不起,你没有登陆"; ?> <?php endif; ?>
当然,如果只是针对是否登陆,则可以简单的写成:
<?php if (is_user_logged_in()){ echo "欢迎你,登陆者"; } else { echo "欢迎你,来访者"; }; ?>
上面说的功能都是直接写在主题模板里的,写主题模板的时候已经写死,除此之外还可以通过wordpress短代码来实现对登录和非登陆访客显示或隐藏内容。
首先,去functions.php加入下列代码:
add_shortcode( 'member', 'member_check_shortcode' ); function member_check_shortcode( $atts, $content = null ) { if ( is_user_logged_in() && !is_null( $content ) && !is_feed() ) return $content; return ''; }
然后在发表文章时,在HTML模式下输入[member]针对非登陆访客隐藏的内容[/member]
就可以了。
THE END