admin管理员组

文章数量:1290954

add_filter( 'get_avatar' , 'alt_name_avatar');
function alt_name_avatar( $avatar ) {
    $alt = get_comment_author();
    $avatar = str_replace('alt=\'\'','alt=\'Avatar for '.$alt.'\' title=\'Avatar for '.$alt.'\'',$avatar);
    return $avatar;
}

This code works but throws an error.

PHP Notice:  Trying to get property 'user_id' of non-object in .../wp-includes/comment-template.php on line 28
PHP Notice:  Trying to get property 'comment_ID' of non-object in .../wp-includes/comment-template.php on line 48

How to fix.

P.S. i use on all pages recent comments with Gravatar in the sidebar

Sorry for my English.

add_filter( 'get_avatar' , 'alt_name_avatar');
function alt_name_avatar( $avatar ) {
    $alt = get_comment_author();
    $avatar = str_replace('alt=\'\'','alt=\'Avatar for '.$alt.'\' title=\'Avatar for '.$alt.'\'',$avatar);
    return $avatar;
}

This code works but throws an error.

PHP Notice:  Trying to get property 'user_id' of non-object in .../wp-includes/comment-template.php on line 28
PHP Notice:  Trying to get property 'comment_ID' of non-object in .../wp-includes/comment-template.php on line 48

How to fix.

P.S. i use on all pages recent comments with Gravatar in the sidebar

Sorry for my English.

Share Improve this question asked Jun 4, 2021 at 14:52 UserUser-nameUserUser-name 577 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 1

You don't check anywhere that you're viewing a comment when you use get_comment_author();. The get_avatar() function is used in a lot of places in WordPress; your code seems to assume it's only in use on comments.

Try this (the code is untested, but should work, I think):

add_filter( 'get_avatar' , 'alt_name_avatar');
function alt_name_avatar( $avatar ) {
    if ( null === get_comment() ) {
        // This isn't a comment.
        return $avatar;
    }
    $alt = get_comment_author();
    $avatar = str_replace('alt=\'\'','alt=\'Avatar for '.$alt.'\' title=\'Avatar for '.$alt.'\'',$avatar);
    return $avatar;
}

There doesn't seem to be a simple is_comment() check to see if we're viewing a comment, so I've chosen to test get_comment(), which will return null if we're not in a comment.

本文标签: phpFix error Gravatar alt