WordPress Multisite: ¿Cómo hacer que todos los elementos de la biblioteca multimedia estén disponibles para cada sitio?

24 ago 2017, 00:39:40
Vistas: 17.1K
Votos: 6

Tengo un WordPress Multisite donde el sitio principal tiene todas las imágenes en la biblioteca multimedia que quiero usar en cada sitio adicional, pero no encuentro la manera de hacer que todas las imágenes aparezcan en la biblioteca multimedia de los sitios adicionales.

He probado el plugin Network Shared Media pero no me permite añadir las imágenes donde las necesito. Solo funciona en el contenido de posts/páginas.

1
Comentarios

Esto no es fácil porque las bibliotecas de medios no muestran archivos, muestran entradas del tipo attachment. El problema fundamental aquí es que necesitas un administrador/catálogo de activos, puede haber servicios externos más adecuados

Tom J Nowell Tom J Nowell
24 ago 2017 01:17:04
Todas las respuestas a la pregunta 3
0

Como se mencionó en un comentario, los medios son en realidad un tipo especial de 'entrada' (post), por lo que los medios pertenecen únicamente al sub-sitio y no son fácilmente accesibles desde otros sub-sitios.

Sin embargo, existen métodos para recorrer todos los sub-sitios y mostrar los medios de todos ellos en una sola página de cualquier sub-sitio. Yo lo hago con mi plugin Multisite Media Display (https://wordpress.org/plugins/multisite-media-display/), que primero enumera todos los sub-sitios en un array y luego consulta cada sub-sitio para mostrar las imágenes dentro de ese sub-sitio. Funciona mediante un shortcode que se inserta en una entrada/página. Yo lo uso para monitorear los medios en todos los sub-sitios y asegurarme de que cumplen con los estándares del sitio. Además, si estás logueado como super-admin, cada imagen enlaza a su página de 'edición', lo que me permite rotar imágenes si es necesario.

Como todos los plugins, el código es 'open source' (y el plugin es gratuito/con todas las funciones), así que si quisieras 'crear el tuyo propio', podrías usar los procesos de código que yo utilizo (que recopilé de Google y luego ajusté para mi plugin). No encontré ningún plugin que hiciera lo que necesitaba, así que lo escribí para uso personal. (Luego hice variaciones para mostrar entradas o comentarios de todos los sub-sitios mediante shortcodes).

El plugin tiene opciones para especificar sub-sitios y otros parámetros, por lo que puedes 'filtrar' la salida según lo que necesites.

Eres bienvenido a usar el código del plugin para crear tu propio plugin que haga exactamente lo que necesitas.

24 ago 2017 02:12:59
0

@Casey ¿ya encontraste una solución?

Yo desarrollé y mantengo un plugin que debería resolver tu caso bastante bien, si lo entendí correctamente.

Replica las entradas de la biblioteca de medios subidas a todos los sitios utilizando funciones nativas de WP, convirtiéndolos en objetos de medios nativos en cada sitio. Sin embargo, solo se almacena una copia del archivo real en el disco para ahorrar espacio.

También es posible replicar todas las imágenes existentes en toda la red. El administrador puede elegir si los medios también deben eliminarse en toda la red o por sitio.

Se puede comprar en CodeCanyon: https://codecanyon.net/item/wordpress-multisite-shared-media/19306250?ref=aikadesign

P.D. Estoy afiliado al producto, lo que significa que me pagan si alguien lo compra. Entendí que está bien promocionar un producto propio si responde a la pregunta y si la afiliación se comunica claramente. Creo que las condiciones aplican aquí.

25 oct 2017 17:09:52
1
-1

Me encontré con exactamente el mismo problema. Prueba esto... Agrega lo siguiente a tu archivo .htaccess en el Administrador de Archivos del C-PANEL de tu sitio donde está instalado el multisitio, reemplazando otras reglas de WordPress con:

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

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

# agregar una barra diagonal al final de /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]

Puedes obtener este código directamente desde la configuración de Configuración de Red.

1 ene 2019 17:29:28
Comentarios

Gracias por esto. Un enlace a la fuente sería útil. ¿Dónde está la configuración de "Configuración de Red"?

omega33 omega33
19 ene 2021 08:13:55