WordPress 多站網路媒體庫同步設定

目錄

需求情境是客戶的網站啟用了多站網路架構,而子站的部分僅作為資料展示用,在維護上客戶希望透過主站就能自動更新子站的內容,因此連同文章的圖片直接使用主站的即可。

在開啟多站網路後,媒體庫的 uploads 資料夾就會多增加一個 sites 的目錄,藉此來存放各子站的圖片,如果是透過複製主站的方式來建立子站,媒體庫的容量就會以倍數增長。

解決方案是請客戶購買 NS Cloner Pro 版,它可以在建立子站時選擇是否要複製媒體庫,如果取消勾選的話就不會再多複製一份出來,然後再使用 WordPress 的勾點 upload_dir 去修改子站的圖片路徑,讓路徑可以對應到主站的媒體庫資料夾。

這樣做的優點是萬一哪天子站要移動到另外一個多站網路底下,只要把修改路徑的勾點移除就好,不會動到資料庫所以不需要複製取代,但缺點是在子站的後台無法正常上傳圖片,如果需要在子站後台上傳圖片,要再另外進行實作了。

替換子站圖片路徑程式碼如下:

/**
 * 替換子站圖片路徑
 */
add_filter(
	'upload_dir',
	function( $data ) {
        // 不是主站才進行替換
		if ( 1 !== get_current_blog_id() ) {
			foreach ( $data as $key => $value ) {
				$data[ $key ] = str_replace( '/sites/' . get_current_blog_id(), '', $data[ $key ] );
			}
			return $data;
		}
		return $data;
	},
	999
);

目錄

賴俊吾 / Oberon Lai
賴俊吾 / Oberon Lai

現為全職 WordPress 工程師,網站開發經歷 11 年,專攻前端工程與 WordPress 佈景主題、外掛客製化開發

訂閱電子報

Hi,我是 Oberon,我會固定在每週五早上發送接案心得以及與 WordPress 相關的電子報,同時也會分享一些實用的開發知識,讓你在 WordPress 的接案路上不孤單!

覺得文章對你有幫助再幫我鼓個掌吧!

相關文章

Gravity Form 取得表單送出資料

WooCommerce 推播通知外掛近期的功能建議是加入支援 Gravity Form 外掛,讓填表者送出資料後可以收到簡訊或是 ...

LearnDash 手動開通課程瀏覽權限

在某些情境下我們需要透過程式碼來開通 LearnDash 的課程瀏覽權限,像是有些免費課程需要填表單才能觀看,或是連續登入 N 日...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

專注於分享 WordPress 開發、接案技巧、專案管理等自由工作者必備知識與心得

© 2023 想點創意科技有限公司

想點創意科技有限公司 | 統一編號 90516823
Designed by Hend Design | 隱私權政策

訂閱電子報

Hi,我是 Oberon,我會固定在每週五早上發送接案心得以及與 WordPress 相關的電子報,同時也會分享一些實用的開發知識,讓你在 WordPress 的接案路上不孤單!