Los perfiles y capacidades de WordPress vienen predefinidos a una configuración estándar que no siempre se ajusta a tus necesidades, es por ello que en prácticamente cualquier WordPress multiusuario estaremos tentados de instalar algún plugin para personalizar estos ajustes.
Pero no siempre es necesario.
Una de las situaciones más comunes es darle más permisos al perfil de «Colaborador» que, por defecto, puede crear entradas y enviarlas a revisión, pero no puede subir imágenes.
Esto, que supone un nivel de seguridad alto, puede ser un auténtico engorro para el editor, que tiene no solo que aprobar la publicación sino ilustrarla el mismo con imágenes, ya que el colaborador no tiene permisos para hacerlo.
No creas, tiene su sentido, pues no solo es un control de seguridad para evitar que se suban archivos comprometidos, sino que en un entorno editorial es importante controlar que las imágenes que se utilizan en las publicaciones sean adecuadas (por el poder de atracción) y, más importante, que tengan los permisos de autor pertinentes para evitar denuncias.
Ahora bien, como es algo que se puede controlar a posteriori por el editor, en muchos entornos tendrá todo el sentido permitir que los colaboradores suban imágenes.
Si quieres, puedes instalar uno de los múltiples plugins que te permiten personalizar, o incluso crear, perfiles y capacidades, cómo Members o Role Scoper, pero si es demasiado, y solo quieres añadir esta funcionalidad, puedes incorporarla a tu plugin de utilidades, simplemente añadiendo este código:
//Que los colaboradores puedan subir imágenes 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'); }
Guardas los cambios y la siguiente vez que un colaborador acceda al editor de entradas de WordPress ya tendrá habilitado el cargador de imágenes.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Al intentar integrarlo en el plugin me da un error 500 el sitio, pero en el theme no pasa nada. ¿Alguna solución?
Ahora no puedo comprobarlo pero me temo que se me pasó añadir el end if, puede que sea por eso
Para esto si recomiendo el uso de algún plugin con funciones avanzadas ya que seria muy tedioso crear roles desde la API de Wordpress, aunque si nada mas queremos que los colaboradores puedan subir imágenes esta solución es perfecta.
Esta es otra de las cosas donde Wordpress flojea si lo comparo con DotNetNuke o Joomla que son los otros 2 gestores de contenidos que manejo regularmente y cualquiera de los 2 permite la creación de roles por defecto, así como la implementación de permisos por página, con plugins se soluciona pero igual ya deberían implementarlo de forma nativa para evitar depender de terceros, evitar incompatibilidades con actualizaciones del sistema y en definitiva ser una plataforma apta para entornos corporativos donde existan paginas publicas y privadas.
mil gracias Fernando. Buscar en google y ahí está ayuda wp, con su solución cortar y pegar :=)
al agregar la funcion al plugin me sale este error
Fatal error: Call to undefined function wp_get_current_user() in … wordpress/wp-includes/capabilities.php on line 1441
¿alguna idea?
estoy con wp 4.3.1
gracias me funciono a la perfección
por alguna razón no me funciona, lo logre con el siguiente código:
add_action(‘init’, ‘buddyforms_allow_contributor_uploads’);
function buddyforms_allow_contributor_uploads() {
if ( current_user_can(‘contributor’) && !current_user_can(‘upload_files’) ){
$contributor = get_role(‘contributor’);
$contributor->add_cap(‘upload_files’);
}
}