WordPress Multisite: Cum să faci toate elementele din biblioteca media disponibile pentru fiecare site?

24 aug. 2017, 00:39:40
Vizualizări: 17.1K
Voturi: 6

Am o rețea WordPress Multisite unde site-ul principal are toate imaginile în biblioteca media pe care doresc să le folosesc pe fiecare site adițional, dar nu reușesc să găsesc o metodă pentru a face toate imaginile să apară în biblioteca media a site-urilor adiționale.

Am încercat plugin-ul Network Shared Media dar nu îmi permite să adaug imaginile unde am nevoie. Doar în conținutul postărilor/paginilor.

1
Comentarii

Acest lucru nu este ușor deoarece bibliotecile media nu afișează fișiere, ele afișează postări de tipul attachment. Problema fundamentală aici este că ai nevoie de un manager/catalog de resurse, pot exista servicii externe mai potrivite

Tom J Nowell Tom J Nowell
24 aug. 2017 01:17:04
Toate răspunsurile la întrebare 3
0

După cum am menționat într-un comentariu, media este de fapt un 'post' special, astfel încât media aparține doar sub-site-ului și nu este ușor accesibilă din sub-site.

Dar există metode de a parcurge toate sub-site-urile și de a afișa media din toate sub-site-urile pe o singură pagină în orice sub-site. Eu fac asta cu plugin-ul meu Multisite Media Display (https://wordpress.org/plugins/multisite-media-display/), care mai întâi enumeră toate sub-site-urile într-un array, apoi interoghează fiecare sub-site pentru a afișa imaginile din acel sub-site. Funcționează prin intermediul unui shortcode pe care îl afișezi într-un post/pagină. Îl folosesc pentru a monitoriza media pe toate sub-site-urile pentru a mă asigura că media respectă standardele site-ului. Și, dacă sunt autentificat ca super-admin, fiecare imagine are un link către pagina sa de 'editare', ceea ce îmi permite să rotesc imaginile după cum este necesar.

Ca și în cazul tuturor plugin-urilor, codul este 'open source' (iar plugin-ul este gratuit/cu funcționalități complete), așa că dacă ai vrea să-ți creezi propriul plugin, ai putea folosi procesele de cod pe care le folosesc eu (pe care le-am adunat de pe Google, apoi am ajustat codul în plugin-ul meu). Nu am găsit un plugin care să facă ce aveam nevoie, așa că l-am scris pentru uz personal. (Și apoi am făcut variații pentru a afișa postări sau comentarii din toate sub-site-urile prin intermediul unui shortcode.)

Plugin-ul are opțiuni pentru a specifica sub-site-uri și alți parametri, astfel încât să poți 'filtra' rezultatul în funcție de ceea ce ai nevoie.

Ești binevenit să folosești codul din plugin pentru a-ți crea propriul plugin care să facă exact ceea ce ai nevoie.

24 aug. 2017 02:12:59
0

@Casey ai găsit deja o soluție?

Am dezvoltat și întrețin un plugin care ar trebui să rezolve cazul tău destul de bine, dacă am înțeles corect.

Acesta replică fișierele încărcate în biblioteca media pe toate site-urile folosind funcțiile native WordPress, transformându-le în obiecte media native pe fiecare site. Totuși, doar o singură copie a fișierului real este stocată pe disk pentru a economisi spațiu.

De asemenea, este posibilă replicarea tuturor imaginilor existente în întreaga rețea. Administratorul poate alege dacă media ar trebui ștearsă și pe toate site-urile sau doar pe anumite site-uri.

Poate fi cumpărat de pe CodeCanyon: https://codecanyon.net/item/wordpress-multisite-shared-media/19306250?ref=aikadesign

P.S. Sunt afiliat la acest produs, ceea ce înseamnă că primesc comision dacă cineva îl cumpără. Am înțeles că este acceptabil să promovez propriul produs dacă acesta răspunde la întrebare și dacă afilierea este comunicată clar. Cred că condițiile se aplică aici.

25 oct. 2017 17:09:52
1
-1

Am întâlnit exact aceeași problemă. Încearcă asta... Adaugă următoarele în fișierul tău .htaccess din C-PANEL File Manager unde este instalat multi-site-ul tău, înlocuind alte reguli WordPress cu:

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

# fișiere încărcate
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# adaugă o bară oblică la final pentru /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]

Poți obține acest cod direct din setările Network Setup.

1 ian. 2019 17:29:28
Comentarii

Mulțumesc pentru asta. Un link către sursă ar fi util. Unde se găsește "Setările de Configurare a Rețelei"?

omega33 omega33
19 ian. 2021 08:13:55