仅允许访问成员的组和管理员

时间:2013-11-03 22:57:37

标签: php wordpress

我正在尝试仅允许特定成员的用户和管理访问某些内容。 使用以下代码,当我以管理员身份登录时,我无法查看内容:

<?php
    if (is_category(4)) {
        if (!current_user_can('my-group') || !current_user_can('add_users')) {
            echo '<h1 class="entry-title">You can not access</h1><p>This content is only for Administrator and group\'s members.</p>';
        }
    } else {
?>

我也单独尝试了每个条件,但作为管理员,我无法查看内容。


我尝试了这个示例代码:

<?php if (is_category(8)) {
    if (!current_user_can('mio-gruppo') || !user_can('administrator')) {
        echo 'you can not pass';
        }
    } else {
        echo 'you pass';
    }
?>

但这两个条件陈述发生冲突。如果我尝试两个单独工作正确

2 个答案:

答案 0 :(得分:0)

我想它应该是&&而不是||

<?php
    if (is_category(4)) {
        if (!current_user_can('my-group') && !current_user_can('add_users')) {
            echo '<h1 class="entry-title">You can not access</h1><p>This content is only for Administrator and group\'s members.</p>';
        }
    } else {
?>

或者反过来说:

<?php
    if (is_category(4)) {
        if (current_user_can('my-group') || current_user_can('add_users')) {
            echo 'access granted';
        } else {
            echo 'no access';
        }
    }
?>

答案 1 :(得分:0)

这就是我需要的:

<?php 
if (is_category(8) && (current_user_can(array(1,2,3,4,5,6,7)) || !is_user_logged_in())) { 
if (!current_user_can('mio-gruppo')) { 
echo 'you can not pass'; 
} 
} else { 
echo ' you can pass'; 
} 
?>