Zeige Autorenarchivseiten für Autoren ohne Beiträge

Ich habe eine Seite für jeden Autor, aber wenn der Autor keine Beiträge hat, kann ich seine Variablen nicht bekommen, weil die Schleife leer ist. Die Seite ist leer, kein Avatar, keine Infos und so, die ganze Seite ist leer.

Wie bekomme ich WordPress, um die Autorenvariable herauszuziehen, wenn es keine Posts gibt (was macht keinen Autor, aber ich bin auf der Autorenseite) ..?

Ich benutze Twentyleven als übergeordnetes Thema.

Solutions Collecting From Web of "Zeige Autorenarchivseiten für Autoren ohne Beiträge"

Um auf das Autorenbenutzerobjekt außerhalb der Schleife eines Autorenarchivs zuzugreifen, können Sie Folgendes tun:

global $curauth; $curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $author_name) : get_userdata(intval($author)); echo 'This is the author page of '.$curauth->display_name; 

Ich habe es geknackt! In meinem Fall erstellte ich zuerst eine author.php-Seite (mein Thema fehlte) aus der archive.php, indem ich sie klonte und säuberte. Dann habe ich dieses Stück Code gefunden:

 < ?php if ( have_posts() ) : ?> 

Es sagt im Grunde: wenn die Autoren einige Beiträge veröffentlicht haben, dann … Nun, ich habe gerade hinzugefügt: “ODER NICHT!”

 < ?php if ( have_posts() || !have_posts() ) : ?> 

Und es funktioniert wunderbar ( siehe hier )! Das “ODER NICHT” ist ” || = ODER” und ” ! = NICHT”.

Außerdem musste ich ändern, wie die Vorlage den Avatar des Autors get_avatar , weil get_avatar nicht korrekt funktioniert, wenn der Autor / Benutzer noch nichts veröffentlicht hat, oder wenn seine Posts immer noch “Privat” und nicht “Öffentlich” sind “.

Ich studierte den Codex und kam zu der folgenden Lösung. Anstatt von:

 echo get_avatar( get_the_author_meta( 'ID' ), 80 ); 

Ich benutze:

 get_avatar( $curauth->ID, 80 ); 

Sie müssen die $curauth Variable jedoch erst nach der get_header function richtig get_header .

 get_header(); $curauth = (get_query_var('author_name')) ? get_user_by('slug', get_query_var('author_name')) : get_userdata(get_query_var('author')); 

Ich habe einmal ein WordPress Plugin namens

Zeige Autoren ohne Beiträge

Fühlen Sie sich frei, es zu benutzen …

Mit dieser function können Sie den 404 zurück zur Autorenvorlage redirect:

 function slug_show_authors_without_posts( $template ) { global $wp_query; if ( $wp_query->query_vars[ 'post_type' ] === 'author' ) { return get_author_template(); } return $template; } add_filter( '404_template', 'slug_show_authors_without_posts' ); 

Hier sind zwei wichtige Dinge zu beachten, wenn Sie diese Lösung verwenden: 1) Dies bricht das Fallback-System der Template-Hierarchie. Wenn Ihr Theme also keine author.php hat, haben Sie ein neues Problem, da es nicht wie gewohnt auf index.php zurückgreift.

TL; DR Sie müssen eine author.php in Ihrem Thema haben.

2) Dies betrifft nicht das Problem, dass die meisten autor.php Vorlagen testen, ob der Autor Posts hat und wenn nicht, gibt es keine Post-Warnung. Sie müssen die Schleife in Ihrer author.php ändern oder entfernen, um dies zu verhindern.

TL; DR Ihre Author.php ist wahrscheinlich so konzipiert, dass dies nicht funktioniert. Sie müssen das beheben.