Fix error Gravatar alt

时间:2021-06-04 作者:UserUser-name

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;
}
此代码可以工作,但会引发错误。

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的最新评论

对不起,我的英语不好。

1 个回复
最合适的回答,由SO网友:Pat J 整理而成

当您使用时,您不会在任何地方查看评论get_comment_author();. 这个get_avatar() 函数用于a lot of places in WordPress; 您的代码似乎假设它只在注释中使用。

试试这个(代码未经测试,但我认为应该可以):

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 如果我们不在评论中。

相关推荐

在phpMyAdmin的记录中发布空值时重复发布

我有一个phpMyAdmin数据库,其中有一个表,当从数据库输入其内容时,会自动发布相关信息。记录中的一些详细信息可能为NULL,在测试期间,我遇到了一个问题,即如果任何记录中的任何内容为NULL,那么从wp admin重新加载时,所有记录都会重复。数据库中的记录数保持不变。我很确定在这种情况下有一种处理null的方法,但我对WordPress和PHP总体上非常缺乏经验,也找不到相关的主题。以下是相关代码和屏幕截图,以更好地解释上下文:Publication-CPT.php (插件)if(!functio