web-dev-qa-db-de.com

Also blenden Sie die Autorenseite aus/leiten sie weiter

Ich habe eine Website, auf der ich Leute abonnieren lasse. Ich möchte die Autorenseite nur für aktuelle Autoren anzeigen, die einen Beitrag geschrieben haben. Ich habe diesen Code geschrieben, der überprüft, ob das Problem darin besteht, dass ich keinen wp_redirect verwenden oder eine Vorlage einbinden kann, die ihn verwendet, da dann die Lieblingsnachricht "Header kann nicht neu definiert werden" angezeigt wird. Ich könnte eine "Benutzer hat keine Beitragsnachricht" anzeigen, aber ich denke, dass es eine bessere Option ist, sie auf die Hauptseite des Autors umzuleiten.

if ( is_author() ) : ?>

    <?php $id = get_query_var( 'author' );

    $post_count = get_usernumposts($id);
    if($post_count <= 0){ 
                 //This line could also be wp_redirect 
                 include( STYLESHEETPATH .'/author-redirect.php');
                 exit;
      }
endif;?>

Vielen Dank

3
Brooke.

Sie können dies zu einem früheren Zeitpunkt tun, indem Sie sich in die richtige Aktion wie template_redirect einhängen, die unmittelbar vor der Anzeige der Vorlage ausgelöst wird.

add_action( 'template_redirect', 'wpse14047_template_redirect' );
function wpse14047_template_redirect()
{
    if ( is_author() ) {
        $id = get_query_var( 'author' );
        // get_usernumposts() is deprecated since 3.0
        $post_count = count_user_posts( $id );
        if ( $post_count <= 0 ) { 
            //This line could also be wp_redirect 
            include( STYLESHEETPATH .'/author-redirect.php' );
            exit;
        }
    }
}
4
Jan Fabry