2010-07-08 20 views
3

我創建了包含5個子博客的Worpress 3多站點。 是否有可能在此博客中共享相同的媒體庫?Wordpress 3多站點具有相同的Medialibrary

我改變了upload_pathwp_1_optionswp_2_options例如,也在我的後臺在「超級管理員」菜單,但它沒有效果。

這些文件上傳到wp_contents/blogs.dir/1-2-3/files和選項不起作用。

有什麼想法?謝謝!

回答

4

解決方法之一是掛接所有媒體管理文件的加載事件,並使用switch_to_blog(1)切換到主博客。

這意味着在任何博客管理中,媒體庫將始終運行,就好像它在主博客上一樣。

請注意,一些注意事項包括:

  • 所有博客的媒體庫都存儲在主博客數據庫表中。
  • 可以運行與介質插入帖主博客管理員之外的問題
  • 運行與插入畫廊進入崗位的主博客管理員之外
  • 用戶權限問題可以是假的積極或消極

我最好的建議是使用下面的代碼示例,並與博客管理員,以不同的用戶登錄,具有不同的角色和看看會發生什麼

function use_main_blog_library() 
{ 
    switch_to_blog(1); 
} 
add_action('load-media-new.php', 'use_main_blog_library'); 
add_action('load-media-upload.php', 'use_main_blog_library'); 
add_action('load-media.php', 'use_main_blog_library'); 
add_action('load-upload.php', 'use_main_blog_library'); 
+0

看起來像是目前唯一的解決方案。感謝這個信息 – choise 2010-07-12 09:01:59

+0

我剛剛試用過wordpress 3.6,它的功能就像一個魅力。感謝它爲我節省了一天的時間! – mark 2013-08-06 08:12:01

+0

在「精選圖片」的情況下,它沒有利用共享媒體。有沒有什麼解決辦法? – 2014-04-09 04:12:26

1

在我對這個話題的搜索,幾個職位引回這一個,所以我想我會分享一個想法,這可能有助於有人想開發一個合適的插件來解決這個...

  • 使用get_site_option()update_site_option()來存儲全局插件選項。
  • 通過掛鉤添加選項以選擇媒體上傳應該在整個網絡範圍內共享,並讓插件跟蹤哪些媒體文件以及它們位於何處。
  • 同樣,使用掛鉤,可以在每個博客的媒體庫中顯示共享項目,並且可能會添加一個指示燈,顯示該文件是網絡共享。

我花了幾個小時玩管理員掛鉤和過濾器,這可以通過他們來完成,但我不夠明白如何將其與所有媒體庫功能完全集成。

Shiba Media Library Plugin可以作爲有價值的參考,因爲他們已經通過掛鉤和過濾器爲媒體庫使用了多個自定義功能。

我真的很希望我有空餘的時間來處理這個問題,因爲我會盡我最大的努力。我希望這可以幫助別人。

0

我找到了一個可能的解決方案,這在WP3.7.1(我還沒有在早期版本的測試吧)

創建一個過濾器,將覆蓋默認上傳目錄爲我工作:

add_filter('upload_dir', 'ms_global_upload_dir'); 

function ms_global_upload_dir($uploads) 
{ 
    $ms_dir = '/sites/' . get_current_blog_id(); 

    $uploads['path'] = str_replace($ms_dir, "", $uploads['path']); 
    $uploads['url']  = str_replace($ms_dir, "", $uploads['url']); 
    $uploads['basedir'] = str_replace($ms_dir, "", $uploads['basedir']); 
    $uploads['baseurl'] = str_replace($ms_dir, "", $uploads['baseurl']); 

    return $uploads; 
} 

重要提示:「網站設置」中的「上傳Url路徑」設置應該爲空,或者如果您需要對其進行自定義,請通過轉儲$uploads陣列來查看結果以查看可能的衝突。

要檢查您的WP版本支持這種方法,定位功能wp_upload_dir()文件WP-包括/ functions.php中找到函數調用:$uploads = apply_filters('upload_dir' ... 如果它提出,上述解決方案應該工作。

希望,這有助於...

此外,我花了差不多兩天的時間做一個解決方案通過複製/刪除上傳的媒體在每個用行動掛鉤「add_attachment」和「delete_attachment」的博客在相應的數據庫表中生成必要的post和postmeta條目。藉助此功能,您可以在任何博客中添加/刪除媒體,這些博客將在所有博客媒體庫中顯示/刪除。如果你有興趣,我可以分享它...

乾杯