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.