Je me demandais si c'était possible. J'ai créé un portail client où ils peuvent voir tout le travail qui leur a été assigné (tout cela est affiché sur le frontend) . Une fois qu'ils se sont connectés, ils sont redirigés vers leur page. J'utilise le code ci-dessous pour afficher les projets liés à l'utilisateur actuel
<?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; ?>
Cela fonctionne parfaitement. Le problème que j'essaie de comprendre est comment afficher toutes les publications de tous les utilisateurs lorsque vous vous connectez en tant qu'administrateur (au début)
J'ai essayé cela, mais le message est ensuite affiché à tous les clients et à l'administrateur.
<?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' );?>
Comment puis-je afficher toutes les publications une fois qu'un administrateur est connecté et afficher uniquement la publication sélectionnée lorsqu'un utilisateur se connecte?
Vous pouvez essayer ceci, SI l'utilisateur actuel est connecté ET pas l'administrateur, il extraira toutes les publications de l'utilisateur actuel, sinon il devrait afficher par défaut toutes les publications de tous les utilisateurs.
<?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' );
?>