【问题标题】:Replace Buddypress Avatars with Simple Local Avatars用简单的本地头像替换 Buddypress 头像
【发布时间】:2013-04-28 22:59:50
【问题描述】:

我一直在努力寻找解决方案,我认为要么没有解决方案,要么我缺乏知识真的让我退缩了。简而言之,我在我的 Wordpress 网站上安装了 buddypress,我一直在使用 Simple本地头像供用户管理自己的头像。由于我一直在使用它并在简单的本地化身插件中进行了一些自定义,我想看看是否可以用本地化身替换所有 buddypress 化身。

简而言之,我的研究使我得出这样的结论:Buddypress 使用 bb_get_avatar 函数来显示和管理其头像,但是本地头像插件使用 get_avatar 函数,因此在拔掉头发后,喝咖啡并返回就开始拉开我在我的functions.php文件中想出了下面的sn-p。这似乎合乎逻辑,但不起作用,这可能是由于我的新手,但嘿,我试试..

这就是我在functions.php中的内容:

//try the avatar thing
function socilize_custom_avatars() {
    global $bb_current_user;
    global $current_user;
    get_currentuserinfo();
    $avatar = bb_get_avatar( $bb_current_user->ID ); 

    unset($avatar); 
    $avatar = get_avatar($current_user->ID);

    return $avatar;
}

似乎(对我来说)它应该可以工作,但它没有,任何人都能够插话并告诉我如何删除 buddypress 头像并让它拉动本地头像?

感谢阅读:)

【问题讨论】:

    标签: buddypress avatars


    【解决方案1】:

    当您使用 BuddyPress 时,您需要查看 bp_core_fetch_avatar()。安装 BP 时,它无处不在。在论坛中也是如此。

    你应该使用它的filters,比如bp_core_fetch_avatarbp_core_fetch_avatar_url

    【讨论】:

      【解决方案2】:

      有终极解决方案:

      1 >> 在 wordpress 设置中将头像设置为 'empty' 或 'none'(对不起,我有一个法语版本的 wordpress)

      2 >> 将该代码放入您的 function.php 中

      // Kill gravatar
      
      function bp_remove_gravatar ($image, $params, $item_id, $avatar_dir, $css_id, $html_width, $html_height, $avatar_folder_url, $avatar_folder_dir) {
      
          $default = get_stylesheet_directory_uri() .'/images/customGravatar.png';
      
          if( $image && strpos( $image, "gravatar.com" ) ){ 
      
              return '<img src="' . $default . '" alt="avatar" class="avatar" ' . $html_width . $html_height . ' />';
          } else {
              return $image;
      
          }
      
      }
      add_filter('bp_core_fetch_avatar', 'bp_remove_gravatar', 1, 9 );
      
      function remove_gravatar ($avatar, $id_or_email, $size, $default, $alt) {
      
          $default = get_stylesheet_directory_uri() .'/images/customGravatar.png';
          return "<img alt='{$alt}' src='{$default}' class='avatar avatar-{$size} photo avatar-default' height='{$size}' width='{$size}' />";
      }
      
      add_filter('get_avatar', 'remove_gravatar', 1, 5);
      
      function bp_remove_signup_gravatar ($image) {
      
          $default = get_stylesheet_directory_uri() .'/images/customGravatar.png';
      
          if( $image && strpos( $image, "gravatar.com" ) ){ 
      
              return '<img src="' . $default . '" alt="avatar" class="avatar" width="auto" height="auto" />';
          } else {
              return $image;
          }
      
      }
      add_filter('bp_get_signup_avatar', 'bp_remove_signup_gravatar', 1, 1 );
      

      3 >> 将'/images/customGravatar.png' 行全部改成你自己的图片

      4 >> 现在允许用户上传自己的本地头像添加这个插件:Simple Local Avatars

      该插件增加了用户向那里添加头像的能力 profil WORDPRESS // BUDDY PRESS 已经有他自己的头像替换系统;)

      【讨论】:

        【解决方案3】:

        一个可能的、更简单的解决方案..

        add_filter('bp_core_fetch_avatar_no_grav', '__return_true');
        

        添加到 plugins/bp-custom.php

        最初的回答和更好的解释在这里..

        https://stackoverflow.com/a/34560419/3377049

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-02-27
          • 1970-01-01
          • 2016-07-14
          • 1970-01-01
          • 2021-01-15
          • 2012-05-23
          • 2017-06-26
          • 1970-01-01
          相关资源
          最近更新 更多