Ich habe einen WP-Hack verwendet, um die Bilder des Autors anzuzeigen. Zum Beispiel hat meine single.php einen Autoren-Slug, der das Bild des Autors anzeigt.
Ich habe einen Ordner namens Autoren in meinem Themen- / Bildordner erstellt. Basierend auf der ID des Autors benenne ich die Datei 1.jpg, 2.jpg und so weiter.
Also nenne ich dieses Bild als
<img src="<?php bloginfo('template_directory') ?>/images/authors/<?php the_author_ID()?>.jpg" alt="<?php the_author(); ?>">
Jetzt ändere ich ein Plugin, das die Autoren in der Seitenleiste anzeigt. Dieses Plugin verwendet jedoch die Funktion get_avatar, die wie folgt lautet:
/**
* If show avatar option is checked, add get_avatar function to cache.
*/
if($jmetc_options['show_avatar'] == 1) {
$jmevar['cache'] .= get_avatar($tc->comment_author_email, $jmetc_options['avatar_size']);
}
Kann mir jemand raten, wie man get_avatar verwendet / ändert, um den von mir verwendeten Standardcode zu verwenden?
apply_filters('get_avatar', $avatar, $id_or_email, $size, $default, $alt);
Ersetzen durch get_avatar verwendet ($ tc und so weiterAntworten:
Die
get_avatar()
Funktion wendet einenget_avatar
Filter-Hook an, mit dem Sie das Avatar-Markup ändern können:Ich denke, dies wäre der richtige Weg, um sich in diesen Filter einzuklinken:
BEARBEITEN
ps Eine gute Alternative zu diesem Ansatz könnte das Simple Local Avatars Plugin sein.
BEARBEITEN 2
Der Filter wird mit
add_filter()
nicht angewendetapply_filters()
. Das war ein Tippfehler von meiner Seite; jetzt behoben!BEARBEITEN 3
Ich denke nicht, dass das richtig ist:
Zunächst rufen Sie weiterhin
get_avatar()
Ihre Vorlagendatei auf und übergeben dieselben Parameter wie zuvor. Deradd_filter()
Anruf gehört infunctions.php
.Zweitens können Sie zusätzliche Parameter an Ihre Filterfunktion übergeben. z.B:
quelle
<img width="60" height="60" class="avatar avatar-60 photo" src="http://1.gravatar.com/avatar/782b5a7a555f8147ac91d84c53e5dfa2?s=60&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D60&r=G" alt="">
get_avatar($tc->comment_author_email, $jmetc_options['avatar_size']);
durchadd_filter('get_avatar', $avatar, $id_or_email, $size, $default, $alt);
get_avatar()
Ihre Vorlagendatei aufrufen und die erforderlichen Parameter an Ihre Filterfunktion übergeben.add_filter( 'get_avatar', 'mytheme_get_avatar', <whatever_priority>, 3 /* number of args! */ );
, um diese Argumente tatsächlich zu erhalten?Es gibt einen kleinen Fehler in der obigen Funktion
Verwenden Sie dies besser:
quelle