it-swarm.com.de

Anzeigen von Inhalten basierend auf einer Benutzeranmeldung

Ich habe mich gefragt, ob das möglich ist. Ich habe ein Kundenportal erstellt, in dem sie alle ihnen zugewiesenen Arbeiten sehen können (dies wird alles im Frontend angezeigt) . Sobald sie sich angemeldet haben, werden sie auf ihre Seite weitergeleitet. Ich verwende den folgenden Code, um die Projekte anzuzeigen, die sich auf den aktuellen Benutzer beziehen

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

Das funktioniert perfekt. Das Problem, das ich herauszufinden versuche, ist, wie alle Beiträge aller Benutzer angezeigt werden, wenn Sie sich als Administrator anmelden (im Frontend)

Ich habe es versucht, aber dann wird der gesamte Beitrag allen Clients und Administratoren angezeigt

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

Wie gehe ich vor, um alle Posts anzuzeigen, sobald ein Administrator angemeldet ist, und nur ausgewählte Posts anzuzeigen, wenn sich ein Benutzer anmeldet?

1
user3756781

Sie können dies versuchen, WENN der aktuelle Benutzer UND nicht der Administrator angemeldet ist, werden alle Beiträge des aktuellen Benutzers abgerufen. Andernfalls sollten standardmäßig alle Beiträge aller Benutzer angezeigt werden.

<?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
Howdy_McGee