Отображение содержимого на основе входа пользователя


Мне было интересно, возможно ли это. Я создал клиентский портал, где они могут видеть всю свою работу, которая была им назначена (все это отображается на интерфейсе). Как только они войдут в систему, они будут перенаправлены на свою страницу. Я использую приведенный ниже код для отображения проектов, связанных с текущим пользователем

 <?php if ( is_user_logged_in() ) : function filter_posts_by_author( $query ) { 
        global $current_user; get_currentuserinfo();
        $query->set( 'author', $current_user->ID );
      }
        add_action( 'pre_get_posts', 'filter_posts_by_author' );?> 
 <h2>Post Goes here</h2>
 <?php else: wp_die('Sorry, you do not have access to this page. Please <a href="/#/">sign in</a> to view this page.');endif; ?>

Это работает идеально. Проблема, которую я пытаюсь решить, заключается в том, как отображать все сообщения от всех пользователей, когда вы входите в систему как администратор (на переднем конце)

Я пробовал это, но затем он отображает все сообщения всем клиентам и администратору

 <?php if ( is_user_logged_in() ) : function filter_posts_by_author( $query ) { 
        global $current_user; get_currentuserinfo();
        $query->set( 'author, administrator', $current_user->ID );
      }
        add_action( 'pre_get_posts', 'filter_posts_by_author' );?> 

Как бы я мог отображать все сообщения после входа администратора в систему и отображать выбранную запись только при входе пользователя в систему?

Author: user3756781, 2014-08-29

1 answers

Вы можете попробовать это, ЕСЛИ текущий пользователь вошел в систему, а не администратор, он будет извлекать все сообщения от текущего пользователя, в противном случае он должен по умолчанию отображать все сообщения от всех пользователей.

<?php 
    function filter_posts_by_author( $query ) {
        if( is_user_logged_in() ) {
            if( !current_user_can( 'administrator' ) ) {
                global $current_user; 
                get_currentuserinfo();
                $query->set( 'author', $current_user->ID );
            }
        }
        else {
            wp_die('Sorry, you do not have access to this page. Please <a href="/#/">sign in</a> to view this page.');
        }
    }
    add_action( 'pre_get_posts', 'filter_posts_by_author' );
?>
 1
Author: Howdy_McGee, 2014-08-29 14:06:10