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


Allow access only member's group and administrator

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

<?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';
    }
?>

但是这两个条件语句是冲突的。如果我分别尝试两者可以正常工作

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

<?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';
        }
    }
?>

这是我需要的:

<?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'; 
} 
?>