我应该怎么做才能让生成的头像不同于匿名评论?

时间:2012-07-13 作者:mvod

我网站上的所有评论都是匿名的,没有注册。要发布评论,您必须填写字段名称(非强制)和评论文本(强制)。

我对阿凡达有问题。所有这些都是相同的生成。

我该怎么做才能让他们与众不同?

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

有两种方法可以自定义默认化身:

将新的默认头像添加到设置/讨论中get_avatar().

将新的默认头像添加到设置/讨论中有一个过滤器\'avatar_defaults\'. 您可以在此处添加更多头像
您将获得一个默认图像数组,其中键是URL,值是可见名称。

示例代码

add_filter( \'avatar_defaults\', \'wpse_58373_kitten_avatar\' );

/**
 * Add a new default avatar.
 *
 * @param  array $avatar_defaults Key = URL, Value = Visible name.
 * @return array
 */
function wpse_58373_kitten_avatar( $avatar_defaults )
{
    $avatar_defaults[\'http://placekitten.com/32/32\'] = \'Kitty\';

    return $avatar_defaults;
}

结果

enter image description here

更改的输出get_avatar().

get_avatar() 在名为的选项中搜索\'avatar_default\' 第一我们可以加入\'pre_option_avatar_default\' 并返回自定义(随机)URL。

示例代码

add_filter( \'pre_option_avatar_default\', \'wpse_58373_custom_default_avatar\');

/**
 * Return a random image URL
 */
function wpse_58373_custom_default_avatar()
{
    /* We use images from WP here, you should change this and put some default
     * images into your theme or plugin directory.
     */
    $base_url = admin_url( \'images\' ) . \'/\';
    $images   = array ( \'wp-logo-vs.png\', \'wpspin_dark.gif\', \'yes.png\' );
    $rand     = rand( 0, ( count( $images ) - 1 ) );

    return $base_url . $images[ $rand ];
}

结果

enter image description here

如您所见,您应该返回一个与主题的头像大小相匹配的图像。:)

SO网友:Stigwood

回复:随机生成头像,这是一个非常有用的答案,只需稍加修改即可完成处理-所讨论的功能需要一个参数才能通过。在没有参数的情况下,返回的代码包含一堆html,其中既包括所需的图像url,也包括gravitar中默认图标的url。我改变了它:

wpse_58373_custom_default_avatar()

对此:

wpse_58373_custom_default_avatar($value)
这似乎生成了没有混乱的图像url。为了便于使用,最后的代码添加了get\\u template\\u directory\\u uri()以主题而不是admin文件夹为目标,并对变量进行了一些整理:

// Random Avatar

add_filter( \'pre_option_avatar_default\', \'mind_bullets_default_avatar\' );

function mind_bullets_default_avatar ( $value ) {

  $tix_array = array ( \'Amer_Cyborg.jpg\', \'Die_hard_3.jpg\', \'Thing.jpg\' );

// Include randomizer in url generator
    return get_template_directory_uri().\'/images/Avatars/\'.$tix_array [rand( 0, ( count( $tix_array ) - 1 ) )]; 

}
希望很快允许用户选择自己的网站,但对于那些只想发表评论的人来说,它保持了网站外观的一致性。

SO网友:nachoparker

为了补充已经说过的内容,我建议使用插件“代码片段”

这样,您对wordpress内部的修改不会与更新发生冲突,您可以实际管理它们(激活、停用、导出它们…)

我建立了一个小教程,使用这个问题的信息和代码片段创建自定义的随机化身

custom random avatars tutorial

这就是它的样子

example_random_avatars

我使用的代码非常简单

// Random Chameleon Avatar

add_filter( \'pre_option_avatar_default\', \'chameleon_default_avatar\' );


function chameleon_default_avatar ( $value )
{
  return admin_url( \'images\' ) . \'/cham_avatars/cham_avatar\'.rand( 0 , 13 ).\'.jpg\';
}

结束

相关推荐

Migrate comments to Disqus

有没有办法将我博客上的所有评论以某种方式迁移到Discus上?考虑使用Disqus而不是常规的WordPress评论,但我不想丢失已经写好的评论。