Отображение содержимого на основе входа пользователя
Мне было интересно, возможно ли это. Я создал клиентский портал, где они могут видеть всю свою работу, которая была им назначена (все это отображается на интерфейсе). Как только они войдут в систему, они будут перенаправлены на свою страницу. Я использую приведенный ниже код для отображения проектов, связанных с текущим пользователем
<?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' );?>
Как бы я мог отображать все сообщения после входа администратора в систему и отображать выбранную запись только при входе пользователя в систему?
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' );
?>