跨站點的用户頭像同步其實是為了讓 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);
?>