跨站点的用户头像同步其实是为了让 buddypress 的用户可以不用老是上传重复的头像,而且对于保持用户数据统一也是很有帮助。以下是特殊情况下如在 WordPress 多站点中需要使用用户头像同步的方法。
- 在修改 WordPress 安装目录中的 config.php 文件,添加
define( 『BP_ENABLE_MULTIBLOG』, true )
,来网络启用 buddypress
- 进入网站后台,网络管理,插件,选择网络激活 buddypress
- 安装一个 WordPress 的用户头像插件,可以在后台搜索最热门的头像插件使用;
- 如果你想完全禁用 gravatar,可以安装:https://wenpai.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);
?>