首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >修正错误Gravatar alt

修正错误Gravatar alt
EN

WordPress Development用户
提问于 2021-06-04 14:52:23
回答 1查看 34关注 0票数 0
代码语言:javascript
运行
复制
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;
}

此代码工作正常,但会引发错误。

代码语言:javascript
运行
复制
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

如何修复。

P.S.我在所有页面上都使用最近在侧栏中使用Gravatar的注释

对不起我的英语。

EN

回答 1

WordPress Development用户

回答已采纳

发布于 2021-06-04 15:33:52

在使用get_comment_author();时,您不会检查正在查看评论的任何位置。get_avatar()函数在在WordPress的很多地方中使用;您的代码似乎假定它仅用于注释。

试试这个(代码还没有经过测试,但我认为应该有效):

代码语言:javascript
运行
复制
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;
}

似乎没有一个简单的is_comment()检查来查看我们是否正在查看评论,所以我选择测试get_comment(),如果我们不在注释中,它将返回null

票数 1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/390129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档