Ersetzen Sie gleichzeitig Kommentaravatare und Links

Ich versuche, die Autorendaten von WordPress zu ersetzen:

1) Avatar (hochgeladenes Bild anstelle von Gravatar)

2) Autorenlink (Link zur Autorenseite, da nur Mitglieder Kommentare abgeben können)

Ich habe aus dieser Frage eine großartige Lösung gefunden und den folgenden Code implementiert:

if ( ! function_exists( 't5_comment_uri_to_author_archive' ) ) { add_filter( 'get_comment_author_url', 't5_comment_uri_to_author_archive' ); function t5_comment_uri_to_author_archive( $uri ) { global $comment; // We do not get the real comment with this filter. if ( empty ( $comment ) or ! is_object( $comment ) or empty ( $comment->comment_author_email ) or ! $user = get_user_by( 'email', $comment->comment_author_email ) ) { return $uri; } return get_author_posts_url( $user->ID ); } } 

Der Code funktioniert perfekt zum Ersetzen von Links und ich möchte damit die Avatare ersetzen. Ich habe eine Kopie der function erstellt und die Namen und die Rückgabe geändert:

 if ( ! function_exists( 'my_comment_imgs' ) ) { add_filter( 'get_comment_author_url', 'my_comment_imgs' ); function my_comment_imgs( $uri ) { global $comment; // We do not get the real comment with this filter. if ( empty ( $comment ) or ! is_object( $comment ) or empty ( $comment->comment_author_email ) or ! $user = get_user_by( 'email', $comment->comment_author_email ) ) { return $uri; } return get_avatar( $user->ID ); } } 

Allerdings negiert diese function die erste, so dass ich aktualisierte Avatare bekomme, aber die Autor-Links verlieren. Wie ersetze ich beide Elemente gleichzeitig (Avatare und Links)?

Solutions Collecting From Web of "Ersetzen Sie gleichzeitig Kommentaravatare und Links"

Vielleicht war ich schon mal von der Arbeit ausgebrannt, aber heute morgen habe ich noch einmal den gleichen Code genommen und es richtig hinbekommen.

 if ( ! function_exists( 'comment_imgs' ) ) { add_filter( 'get_comment_author_url', 'comment_imgs' ); function comment_imgs( $avatar, $id_or_email, $size, $default, $alt ) { global $comment; // We do not get the real comment with this filter. if ( empty ( $comment ) or ! is_object( $comment ) or empty ( $comment->comment_author_email ) or ! $user = get_user_by( 'email', $comment->comment_author_email ) ) { return $uri; } return get_avatar( $user->ID ); } } 

Die Gutschrift für den Originalcode geht an Thomas Scholz, um auf Autorseiten zu verlinken, diese Modifikation ruft lokale Avatare ab und zwei functionen kollidieren nicht miteinander.