• Ir a navegación principal
  • Ir al contenido principal
  • Ir a la barra lateral primaria
  • Ir al pie de página

Dani Sánchez - Gestionatuweb

Desarrollador web freelance - Dani Sánchez Gestionatuweb

  • ¿Eres agencia?
  • WordPress
    • Mantenimiento
    • Desarrollo
    • Soporte técnico
  • Cursos
  • Porfolio
  • Blog
  • Contacto
  • Solicita Presupuesto
Estás aquí: Inicio / Publicaciones / Permitir a un usuario colaborador subir archivos desde el Frontend (WordPress)

Publicaciones, Tutoriales, Wordpress / 16 de enero de 2018

Permitir a un usuario colaborador subir archivos desde el Frontend (WordPress)

Si hemos creado un formulario externo para que usuarios colaboradores puedan enviar contenidos al sitio web sin necesidad de acceder al Dashboard, veremos que al cargar el editor de WordPress (wp_editor), no aparece el botón de Añadir Objeto para acceder a la Biblioteca de Medios:

Sería muy interesante (y nos ahorraría mucho trabajo), que nuestros usuarios colaboradores pudieran subir imágenes y contenidos para ilustrar sus contenidos, evitando tener que hacerlo nosotros a la hora de revisar la entrada.

Para ello tendremos que darle al usuario colaborador (contributor) permisos o capacidad para añadir archivos a WordPress. Por internet he encontrado en numerosos posts el siguiente código:

if ( current_user_can('contributor') && !current_user_can('upload_files') )
    add_action('admin_init', 'allow_contributor_uploads');
function allow_contributor_uploads() {
    $contributor = get_role('contributor');
    $contributor->add_cap('upload_files');
}

Pero este código NO FUNCIONA en versiones recientes de WordPress. Aparecerá el botón de Añadir Objeto, pero en el momento que intentes cargar un archivo, te dirá que no tienes permisos para añadir archivos a esta entrada.

Y tiene que ver con la forma en la que ahora WordPress trata a los archivos de medios, dándoles las características cómo de un custom post o estilo de entrada. Para que funcione tienes que dotar al usuario colaborador de otros permisos adicionales como, editar páginas publicadas, editar otras páginas, editar entradas publicadas y editar otras entradas, además por supuesto, de subir archivos:

//Permitir al colaborador subir imágenes
    function update_caps() {
 $role = get_role( 'contributor' );
 $caps_to_add = array(
 'edit_others_posts',
 'edit_published_posts',
 'edit_others_pages',
 'edit_published_pages',
 'upload_files'
 );
 foreach( $caps_to_add as $cap )
 $role->add_cap( $cap );
 }
  add_action('init', 'update_caps');

Con este código si he conseguido que un usuario colaborador pueda cargar imágenes desde un formulario externo en el Frontend de WordPress.

ACTUALIZACIÓN DESDE WORDPRESS 5.0

En versiones recientes de WordPress (desde la 5), no he necesitado añadir permisos de edit_others_posts, edit_others_pages, edit_published_posts y edit_published_pages. Simplemente agregando la capacidad «upload_files», ha funcionado.

En el siguiente post veremos cómo hacer que un usuario colaborador solo pueda ver sus archivos en la Biblioteca de Medios.

Archivado en:Publicaciones, Tutoriales, Wordpress Etiquetado con:colaboradores, desarrollo web, páginas web, php, programación web, publicaciones, tutoriales, wordpress

Interacciones con los lectores

Este artículo puede contener código que podría no funcionar correctamente en tu versión de WordPress o causar incompatibilidad con tu plantilla o plugins. Úsalo bajo tu responsabilidad y haz siempre copia de tus archivos antes de modificarlos.

Comentarios

  1. Luis Urgilés Narváez dice

    1 de diciembre de 2020 en 05:27

    Buenas estimado aparte también hay la posibilidad de subir archivos con formato pdf en una página para q se publique en el sitio web gracias

    Responder

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

  Acepto la política de privacidad

Barra lateral primaria

Daniel Sánchez

@danisanchez82
t.me/gestionatuweb

Buscar en la web

Contenidos del curso

  • Crear entradas desde un formulario externo en WordPress (sin plugins)
  • Ocultar la barra de admin a usuarios que no sean administradores
  • Impedir el acceso al Dashboard (wp-admin) a usuarios no administradores
  • Permitir el acceso a una página según el rol del usuario (WordPress)
  • Permitir a un usuario colaborador subir archivos desde el Frontend (WordPress)
  • Modificar la Biblioteca de Medios para que los usuarios solo vean sus propios archivos (WordPress)

Hosting de confianza

Footer

Buscar en la web

  • Inicio
  • Agencias
  • Mantenimiento WordPress
  • Desarrollo WordPress
  • Soporte técnico WordPress
  • Cursos
  • Portfolio
  • Blog
  • Contacto
  • Política de privacidad

Mis redes

  • Facebook
  • LinkedIn
  • Twitter
  • YouTube

© 2016–2021 Gestionatuweb · Programado con Genesis Framework · Iniciar sesión

Utilizo cookies para obtener datos estadísticos sobre el uso de mi sitio web y personalizar la publicidad (no intrusiva) del blog según tus intereses. En ningún caso estas cookies te identifican como persona, solo a tu dispositivo en la Red. Aceptando el uso de cookies me ayudarás a mantenener el blog gracias a la publicidad y podré mejorar la experiencia de uso gracias a la analítica web. Puedes navegar por mi sitio web sin que se instale ninguna de estas cookies, aunque este mensaje permanecerá visible en todo momento.AceptoPolítica de privacidad