El perfil de usuario «colaborador» de WordPress permite crear entradas pero, por defecto, no puede subir archivos con los que ilustrar (imágenes por ejemplo) sus artículos.
Esto puedes solucionarlo de varias maneras, una es instalar el plugin Role Manager y asignarle esta nueva capacidad, o si te parece demasiado instalar un plugin «solo para eso», y no requieres del resto de funcionalidades del mismo, puedes añadir estas líneas al fichero functions.php
:
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'); }
Como siempre, tu eliges el método pero posible es casi todo en WordPress ¿no?
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Perdonando la ignorancia sobre php, en que parte del código se debe insertar este pedazo?
Asumo que no da lo mismo en que parte.
GRacias por la respuesta
@artangelo: En cualquier parte del fichero functions.php de tu theme va bien.
Si señor, llevaba 2 meses buscando una solucion, hace 2 dias di con el plugin role manager, pero como bien dices, es mucho plugin para solo habilitar la subida de imagenes.
Muchas gracias por el codigo 🙂
Porque no usas el plugin: Flexupload multithread uploader
.
Creo que te puede servir.
Suerte
Es una opción, como usar Role Manager y aumentarles la capacidad de upload también 🙂
Yo he insertado el código y todo perfecto, pero de esta forma tienen acceso al media library ¿Qué se podría hacer para que no la tuviesen?
Gracias de antemano
Acceso al media library? Pueden borrar otras imagenes? Con el plugin pasa lo mismo? Un saludo
Finalmente lo he ocultado por css de forma genérica. No es lo optimo pero algo es. De todas formas agradecería saber otras opciones 🙂
Pon esto en «functions.php»:
add_action(‘pre_get_posts’,’ml_restrict_media_library’);
function ml_restrict_media_library( $wp_query_obj ) {
global $current_user, $pagenow;
if( !is_a( $current_user, ‘WP_User’) )
return;
if( ‘admin-ajax.php’ != $pagenow || $_REQUEST[‘action’] != ‘query-attachments’ )
return;
if( !current_user_can(‘manage_media_library’) )
$wp_query_obj->set(‘author’, $current_user->ID );
return;
}
Hola. Si wordpress está en español hay que cambiar las palabras ‘contributor’ por ‘colaborador’? Es que he probado el código y no me funciona.
Muchas gracias
Genial! funcionó de inmediato ingresando el código al functions 🙂 thx!!!