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