Ciao a tutti...online vedo che molti come me stanno cercando di trovare una soluzione a questo quesito. Come condividere gli allegati in wordpress su tutti i siti installati sul network in multisite.
Fino ad ora, dopo diverse ricerche son riuscito a condividere la cartella degli uploads con successo ma il problema fondamentale resta e cioè il condividere la media library. Si, so che c'è un plugin che condivide la media library, ma non fa quello che sto cercando io. il plugin in questione condivide le immagini che si vogliono inserire nell'editor del post, ma a me questo non basta. Quel che sto cercando di realizzare è la vera e propria condivisione degli attachments. Smanettando un po (si sono più uno smanettone che un programmatore) son riuscito a condividere la cartella degli uploads e, attraverso qualche filter ed action, duplicare un allegato su tutti i siti del network ogni volta che inserisco una immagine su un singolo sito. Ora, i filtri utilizzati non sembrano soddisfare ancora a pieno i miei intenti e speravo di trovare assieme a voi una soluzione più stabile.
Posto di seguito i codici utilizzati affinchè, magari, si possa trovare insieme una valida soluzione da condividere con tutti. Grazie anticipatamente per ogni consiglio e aiuto.

per condividere la cartella uploads e prevenire nomi di file dupicati uso il seguente codice:

Codice PHP:
add_filter('upload_dir''mu_media_upload_dir');function mu_media_upload_dir($upload) {    global $user_ID;    if ((int)$user_ID 0) {        $upload['path'] = ABSPATH 'wp-content/uploads';        switch_to_blog(1);        $upload['url'] = site_url() . '/' 'wp-content/uploads';        restore_current_blog();        $upload['subdir'] = "";        $upload['basedir'] = $upload['path'];        $upload['baseurl'] = $upload['url'];    }    return $upload;}
function 
make_filename_hash($filename) {    global $user_ID;    return $user_ID time() . $filename;}add_filter('sanitize_file_name''make_filename_hash'10); 
quindi, per duplicare gli allegati su ogni sito ogni qualvolta ne inserisco uno uso:

Codice PHP:
add_filter('sanitize_file_name''make_filename_hash'10);function sync_media_items($file){    $wp_upload_dir wp_upload_dir();    global $wpdb;    $attachment = array(        'guid' => $file['url'],        'post_mime_type' => $file['type'],        'post_title' => preg_replace'/\.[^.]+$/'''basename($file['file'])),        'post_content' => '',        'post_status' => 'inherit',    );    $currentblog get_current_blog_id();    $network wp_get_sites();    foreach($network as $site){        if($site['blog_id'] != $currentblog){            switch_to_blog($site['blog_id']);            if($attach_id wp_insert_attachment$attachment$file['file'] )){                require_once( ABSPATH 'wp-admin/includes/image.php' );                $fullsizepath get_attached_file($attach_id);                $attach_data wp_generate_attachment_metadata$attach_id$fullsizepath );                wp_update_attachment_metadata$attach_id$attach_data );            }            restore_current_blog();        }            }    return $file;}add_action('wp_handle_upload','sync_media_items');add_action('wp_handle_sideload','sync_media_items');
function 
sync_attachment($attachment_id){    return $attachment_id;}add_action('add_attachment','sync_attachment'); 
Allora....le due action "wp_handle_upload" e "wp_handle_sideload" soddisfano solo in parte il mio problema. ad esempio, ho realizzato un plugin per inserire dei prodotti in wordpress tramite csv, ma in questo caso gli allegati dei prodotti inseriti non vengono duplicate sulle altre media library dei siti del network, quindi già sbaglio qualcosa!!

mi chiedevo... sarà possibile "chiedere" a wordpress di inserire tutti gli allegati in una sola tabella del database invece di inserirli nelle rispettive tabelle dei singoli siti? se si, come si potrebbe fare?
Mha! chiedo la vostra opinione e mi rimetto ai vostri consigli. Grazie.