WordPress Multisite: come rendere disponibili tutti gli elementi della libreria media per ogni sito?

24 ago 2017, 00:39:40
Visualizzazioni: 17.1K
Voti: 6

Ho una rete WordPress Multisite in cui il sito principale contiene tutte le immagini della libreria media che vorrei utilizzare in ciascuno dei siti aggiuntivi, ma non riesco a trovare un modo per far apparire tutte le immagini nella libreria media dei siti aggiuntivi.

Ho provato il plugin Network Shared Media ma non mi permette di aggiungere le immagini dove mi servono, solo all'interno del contenuto di post/pagine.

1
Commenti

Non è semplice perché le librerie multimediali non mostrano i file, ma mostrano post di tipo attachment. Il problema fondamentale qui è che hai bisogno di un gestore/catalogo di risorse, potrebbero esserci servizi esterni più adatti

Tom J Nowell Tom J Nowell
24 ago 2017 01:17:04
Tutte le risposte alla domanda 3
0

Come menzionato in un commento, i media sono in realtà un tipo speciale di 'post', quindi i media appartengono solo al sotto-sito e non sono facilmente accessibili dal sotto-sito.

Ma esistono metodi per scorrere tutti i sotto-siti e visualizzare i media da tutti i sotto-siti su una singola pagina in qualsiasi sotto-sito. Io lo faccio con il mio plugin Multisite Media Display (https://wordpress.org/plugins/multisite-media-display/), che prima enumera tutti i sotto-siti in un array, quindi interroga ogni sotto-sito per visualizzare le immagini al suo interno. Funziona tramite uno shortcode che puoi inserire in un post/pagina. Io lo uso per monitorare i media su tutti i sotto-siti e assicurarmi che rispettino gli standard del sito. E, se loggato come super-admin, ogni immagine è collegata alla sua pagina di modifica, permettendomi di ruotare le foto se necessario.

Come tutti i plugin, il codice è 'open source' (e il plugin è gratuito/a funzionalità complete), quindi se vuoi 'creare il tuo', puoi utilizzare i processi di codice che uso io (che ho raccolto da Google e poi modificato nel mio plugin). Non ho trovato un plugin che facesse ciò di cui avevo bisogno, quindi l'ho scritto per uso personale. (E poi ho creato variazioni per visualizzare post o commenti da tutti i sotto-siti tramite uno shortcode.)

Il plugin ha opzioni per specificare sotto-siti e altri parametri, così puoi 'filtrare' l'output in base alle tue esigenze.

Sei libero di utilizzare il codice nel plugin per creare il tuo plugin che faccia esattamente ciò di cui hai bisogno.

24 ago 2017 02:12:59
0

@Casey hai già trovato una soluzione?

Ho sviluppato e mantengo un plugin che dovrebbe risolvere il tuo caso abbastanza bene, se ho capito correttamente.

Replica le voci del media library caricate su tutti i siti utilizzando le funzioni integrate di WP, rendendoli oggetti media nativi su ciascun sito. Tuttavia, viene memorizzata una sola copia del file effettivo sul disco per risparmiare spazio.

È anche possibile replicare tutte le immagini esistenti in tutta la rete. L'amministratore può scegliere se i media devono essere eliminati anche attraverso la rete, o per singolo sito.

Può essere acquistato su CodeCanyon: https://codecanyon.net/item/wordpress-multisite-shared-media/19306250?ref=aikadesign

P.S. Sono affiliato al prodotto, il che significa che vengo pagato se qualcuno lo acquista. Ho capito che è consentito promuovere prodotti propri se rispondono alla domanda e se l'affiliazione è chiaramente comunicata. Penso che le condizioni si applichino qui.

25 ott 2017 17:09:52
1
-1

Mi sono imbattuto nello stesso identico problema. Prova questo... Aggiungi quanto segue al tuo file .htaccess nel File Manager del C-PANEL del tuo sito dove è installato il multi-sito, sostituendo le altre regole di WordPress con:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# file caricati
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# aggiungi una barra finale a /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

Puoi ottenere questo codice direttamente dalle impostazioni di Configurazione della Rete.

1 gen 2019 17:29:28
Commenti

Grazie per questo. Un link alla fonte sarebbe utile. Dove si trovano le "impostazioni di configurazione della rete"?

omega33 omega33
19 gen 2021 08:13:55