跨站点的用户头像同步其实是为了让buddypress的用户可以不用老是上传重复的头像,而且对于保持用户数据统一也是很有帮助。以下是特殊情况下如在 WordPress 多站点中需要使用用户头像同步的方法。
- 在修改WordPress安装目录中的 config.php 文件,添加
define( ‘BP_ENABLE_MULTIBLOG’, true )
,来网络启用 buddypress
- 进入网站后台,网络管理,插件,选择网络激活 buddypress
- 安装一个WordPress的用户头像插件,可以在后台搜索最热门的头像插件使用;
- 如果你想完全禁用gravatar,可以安装:https://wordpress.org/plugins/disable-user-gravatar/
- 将下方的代码添加到你的主题或者子主题的 function.php 文件里,注意定义
BP_ROOT_BLOG
这里是定义一个站点 ID 如果你的祝要 buddypress 站点是 1 那么就填写为 1,如下。
<?php
//echo get_current_blog_id();
//echo ABSPATH . “<BR>”;
//echo get_site_url() . “<BR>”;
if ( !defined( ‘BP_ROOT_BLOG’ ))
define( ‘BP_ROOT_BLOG’, 1);
// echo “There is no root blog defined “;
// echo get_blog_option( 3, ‘siteurl’ ) . “wtf”;
/* This fixes the Multisite avatar problem */
function nfm_bp_avtar_upload_path_correct($path){
if ( bp_core_is_multisite() ){
$path = ABSPATH . get_blog_option( BP_ROOT_BLOG, ‘upload_path’ );
}
return $path;
}
add_filter(‘bp_core_avatar_upload_path’, ‘nfm_bp_avtar_upload_path_correct’, 1);
function nfm_bp_avatar_upload_url_correct($url){
if ( bp_core_is_multisite() ){
$url = get_blog_option( BP_ROOT_BLOG, ‘siteurl’ ) . “/wp-content/uploads”;
}
return $url;
}
add_filter(‘bp_core_avatar_url’, ‘nfm_bp_avatar_upload_url_correct’, 1);
?>