我正在尝试替换Wordpress评论作者数据:
(1)Avatar (已上载图像,而不是Gravatar)
(2)Author link (链接到作者页,因为只有成员才能发表评论)
我从以下方面找到了一个很好的解决方案this question, 并实现了以下代码:
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 );
}
}
代码非常适合替换链接,我想用它来替换化身。我创建了函数的副本,并更改了名称和返回:
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 );
}
}
然而,这个函数否定了第一个,所以我得到了更新的头像,但失去了作者链接。如何同时替换这两个元素(化身和链接)?
最合适的回答,由SO网友:fjanecic 整理而成
也许我以前工作累得筋疲力尽,但今天早上我又尝试了一次相同的代码,并设法使其正常运行。
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 );
}
}
原始代码的贷方为
Thomas Scholz 对于链接到作者页面,此修改将检索本地化身,并且两个功能不会相互冲突。