过滤默认化身列表

时间:2015-03-05 作者:henrywright

我正在使用avatar_defaults filter hook可过滤默认化身列表。例如:

function my_avatar_defaults( $avatar_defaults ) {
    $avatar_defaults[\'http://example.com/foo.png\'] = __( \'Foo\' );
    return $avatar_defaults;
}
add_filter( \'avatar_defaults\', \'my_avatar_defaults\' );
这是因为如果我访问“设置”>“讨论”,然后向下滚动,我可以看到Foo已添加为默认的化身选项。有关示例,请参见以下屏幕截图:

Default avatar list of options

问题是src Foo旁边显示的图像的属性。它似乎在给格雷瓦塔打电话。下面是我为Foo旁边的图像获取的源代码示例:

<img src="http://0.gravatar.com/avatar/efaeb0e0be9922051a1c4ccce766a141?s=32&d=http%3A%2F%2Fexample.com%2Ffoo.png%3Fs%3D32&r=G&forcedefault=1" />
如何确保src 属性指向我的图像URL而不是Gravatar URL(其中似乎包含我的图像URL)?

2 个回复
最合适的回答,由SO网友:butlerblog 整理而成

你做得对。

呼叫gravatar。com传递自定义图像的位置,以便WP可以加载它。查看src中的查询字符串,您将看到您的图像位置。这就是它的工作原理。

SO网友:kaiser

两个注意事项:

  1. get_avatar() 是一个“可插拔”功能。这意味着,您可以编写一个插件来保存名为get_avatar(), 然后将覆盖WP使用的原始函数
  2. get_avatar() 还有一个过滤器

    return apply_filters( \'get_avatar\', $avatar, $id_or_email, $size, $default, $alt );
    
    可用于更改返回值的:

    add_filter( \'get_avatar\', function( $html, $id, $size, $default, $alt )
    {
        // apply some changes here
        return $html;
    }, 10, 5 );
    
    这意味着您可以简单地更改输出并删除src 呼叫“Gravatar”,这样就不会发生。

结束

相关推荐

搜索.php的模板_INCLUDE让WordPress认为它在主页上

我有一个自定义标签搜索功能,允许人们搜索多个标签以返回相关帖子。表示他们希望看到标记为“Wordpress”和“Tutorials”的帖子。我正在使用template_include 过滤器,如下所示:public static function template_redirect( $template ) { if( isset($_GET[\'tag-search\']) ) { $template = locate_template( arra