Durante la primera sesión del curso que estoy impartiendo sobre Administración de blogs educativos con WordPress, uno de los asistentes me hizo la siguiente pregunta: “¿cómo conseguir que un artículo solo pueda ser visto y leído por quien yo quiera?”. Enseguida respondí que eso era posible y que existen varios procedimientos distintos para conseguirlo, pero que era un aspecto de la configuración del blog que no íbamos a tratar en la primera sesión, sino algo más adelante.
Efectivamente, WordPress dispone por sí mismo de al menos un par de sistemas para conseguir tal propósito: se puede poner una contraseña a una entrada, con lo cual esta solo será visible para quien la conozca (véase el artículo Writing Posts en el Codex de WordPress), o se puede declarar un artículo como “privado”, situación en la que solo un usuario administrador o editor podrá acceder a su contenido (sobre las capacidades de estos usuarios, véase el artículo Roles and Capabilities). Por supuesto, son medios un tanto rudimentarios, que se pueden mejorar muchísimo con la ayuda de diversos plugins, como CaPa Protect, HidePost, Member Access, MemberView, Members Only, Page Restrict, PrivatePost, Private! WordPress Access Control Manager, Revisionary, Subscribers Only Content, Users Only, WordPress Access Control, WP-Members o wpNamedUsers (conviene tener en cuenta que no son los únicos, y que además he dejado voluntariamente fuera de la lista las extensiones que vinculan la restricción del contenido con medios de pago, destinadas a crear sitios web a los que sólo se puede acceder por suscripción).
Como no me gusta dejar las preguntas de mis alumnos sin respuesta (aunque ésta no pueda ser inmediata, es responsabilidad del profesor hacer lo necesario para satisfacer su curiosidad), he recurrido a mi particular base de conocimientos sobre WordPress, en la que se combinan los muchos blogs experimentales y para propósitos específicos que he montado a lo largo del tiempo, las entradas que forman parte de la categoría “Bitácoras y WordPress” de mi blog y los correos electrónicos que suelo mandarme a mí mismo cuando encuentro algo que me llama la atención, aunque no tenga utilidad inmediata. Tras una breve búsqueda que me ha servido para orientar mis pesquisas, he recordado que en ParaPNTE, el blog de noticias TIC del PNTE, utilicé el plugin Members para modificar la distribución original de roles y capacidades, y crear un nuevo usuario en el que se combinan las capacidades de autores y editores.
De hecho, Members es una extensión utilísima, pues ofrece funcionalidades que resultan de especial interés en escenarios de blogs multiusuario para el que se requieren características singulares. Obra de Justin Tadlock, un programador sobre cuyas extensiones y temas ya he escrito varias veces en este blog, el plugin es, en realidad, un conjunto de módulos independientes que se pueden activar separadamente, a saber:
- Edit Roles: permite editar los roles de WordPress (administrador, editor, autor, colaborador y suscriptor) y modificar las capacidades originales de cada uno de ellos.
- New Roles: hace posible definir nuevos roles, a partir de las capacidades existentes en la aplicación, que pueden ser las que vienen con WordPress u otras, a su vez proporcionadas por las correspondientes extensiones.
- Content Permissions: añade una caja (metabox) al editor de entradas y páginas, mediante la cual se puede decidir quién puede leer el contenido, en función de las capacidades o roles de los usuarios.
- Shortcodes: proporciona un conjunto de códigos (shortcodes) que pueden utilizarse para restringir o bien otorgar acceso a ciertas áreas del sitio web, desde dentro del editor de entradas o desde otras áreas en las que esté permitido el uso de shortcodes.
- Template Tags: permite utilizar etiquetas de plantilla adicionales en los temas de WordPress, con el fin de restringir o proporcionar acceso a ciertos contenidos. Es, seguramente, el módulo que exige conocimientos más avanzados sobre programación, por lo que solo tiene utilidad para usuarios expertos.
- Widgets: añade dos nuevos widgets que se pueden utilizar en las zonas widgetizables del blog. El primero, denominado Login Form, añade al frontend un formulario que permite la conexión de un usuario con sus datos de nombre de usuario y contraseña; el segundo, llamado Users, genera un listado de los usuarios registrados en el blog.
- Private Blog: sirve para convertir todo el blog en privado, lo cual significa en la práctica que sólo los usuarios registrados y conectados podrán ver su contenido (si no lo están, el componente redirige el acceso a la página de conexión del blog). Conviene tener en cuenta que este componente no bloquea el acceso público a las fuentes RSS del sitio, por lo que los usuarios no registrados podrán conocer su contenido mediante un agregador o cualquier otro dispositivo capaz de leer dichas fuentes.
No creo que sea necesario insistir en la enorme utilidad de estas funcionalidades para aquellos blogs educativos que tienen usuarios-alumnos cuyas capacidades queramos verificar de cerca. Tampoco creo que haga falta poner muchos ejemplos de uso, porque cualquier persona que haya administrado un blog con alumnos podrá imaginar situaciones en las que dichas funciones le permitan resolver un problema o atender una exigencia concreta. Se me permitirá, en cambio, que ilustre la utilidad de esta extensión con una necesidad real, que enseguida se me presentará durante las próximas sesiones del citado curso de “Administración de blogs educativos con WordPress”:
- Quiero que los alumnos dados de alta en el blog del curso, todos ellos con el rol de editores, puedan instalar y modificar plugins y temas, crear, instalar y modificar widgets, etc. Sin embargo, y para evitar posibles desastres, no quiero darles el rol de administrador (que es el que en una instalación estándar de WordPress tiene capacidad para desempeñar tales tareas). Pues bien, he activado el módulo New Roles y, tras asignar al administrador del blog la capacidad create_roles, he creado un nuevo rol, llamado “Probador de temas y plugins”, que reúne todas las capacidades que a mí me interesan. Puede verse la diferencia entre el rol estándar de editor y el nuevo que yo he creado mediante la comparación de las figuras 1 y 2.
WordPress permite afinar todavía más la gestión de los usuarios del blog, mediante plugins que, como WP-CMS Post Control, hacen posible un control exhaustivo sobre los elementos del editor de entradas y páginas a los que pueden acceder los usuarios declarados en el blog. Por consiguiente, y siempre que utilice los plugins apropiados, un administrador de un blog educativo no sólo puede crear roles a voluntad, sino también decidir qué elementos de las distintas páginas del backend del blog pueden manejar sus usuarios.
Antes de acabar esta entrada, quiero dejar constancia de dos aspectos que seguramente interesarán a los administradores de blogs educativos: el primero, que he traducido el plugin Members al español, de lo cual he dado cuenta a Justin Tadlock mediante un comentario en la correspondiente página de su sitio web. No sé si el autor considerará útil esta novedad (en el momento de publicar esta entrada, dicho comentario todavía se halla en proceso de aprobación), pero en cualquier caso todas las personas interesadas en la traducción al español pueden descargar a partir de hoy desde La Bitácora del Tigre el ZIP que contiene los ficheros members-es_ES.po y members-es_ES.mo, con la traducción al español.
La segunda nota tiene que ver con la gestión de roles y capacidades en WordPress, para lo cual el plugin Members es sólo uno de los diversos recursos disponibles. Otras alternativas son los plugins Advanced Access Manager, Capability Manager, Capability Manager Enhanced, PressPermit, Role Manager. Role Scoper, s2Member® Framework (una extensión realmente descomunal, en todos los sentidos de la palabra), User Access Manager y User Role Editor. He probado algunos, pero todavía no estoy muy ducho en su manejo, y por tanto no tengo una opinión consolidada al respecto, aunque en general me parecen más complicados y difíciles de utilizar que el que acabo de comentar en este artículo. En cualquier caso, no es improbable que en un próximo futuro trate sobre alguno de ellos.
Eduardo Larequi (@elarequi) (@elarequi) dice
@reporte_geek Tienes una descripción del plugin Members es un artículo reciente de mi blog: http://tinyurl.com/6jwxom9
PC-SERVEIS, Diseño Web dice
Muchísimas Gracias por tu Publicación Eduardo.
Realmente Members es un plugin muy interesante para Blogs multi-usuario.
Es una pena que el autor, Justin Tadlock, no haya querido seguir desarrollando este plugin y añadir tu traducción española a su pack de descarga. Lo he probado y funciona 100% correctamente.
Un Saludo desde Barcelona ! !
Eduardo Larequi dice
Efectivamente, Members es un plugin de gran utilidad, y yo suelo recomendarlo en los cursos que imparto sobre WordPress. En cuanto al desarrollo del plugin, no creo que Tadlock lo haya paralizado, porque sigue dando soporte al plugin en su sitio, Hybrid Theme. Estoy seguro de que antes o después nos sorprenderá con una nueva versión.
Por cierto, gracias por el comentario, que entre otras cosas me ha servido para arreglar un defecto de esta entrada, relacionado con la inserción de las capturas de pantalla.
Santos Guerra dice
Para ser bien puntuales, he probado la mayoría de los otros plugins que mencionan aquí y otros tantos mas que no se mencionan y ninguno me había permitido resolver una situación que se me presentaba con una página donde había como 5 tipos distintos de usuarios y maneras diferentes de manejar el contenido.
Con el plugin «members» sogre facilmente resolver el problema. Aunque debo añadir que en algunos casos tuve que modificar un poco los plugins pues no todos tienen los roles asignados segun la necesidad, pero en lineas generales este artículo me fue de mucha ayuda.
Muchas gracias.
Eduardo Larequi dice
Me alegra mucho poder haberte servido de ayuda, Santos. Hay otro plugin muy prometedor, todavía en fase beta, que tengo pendiente de probar a fondo, y que seguramente te interesará. Se llama Advanced Access Manager: http://wordpress.org/extend/plugins/advanced-access-manager/.
Diego dice
Muchas gracias tu publicacion me ha sido de una ayuda increible, adelante compartiendo campeon
Eduardo Larequi dice
Gracias, Diego. Poder ayudar a los colegas blogueros es la mejor recompensa a que puede aspirar un blog como este.
lenier dice
Buenas muy bueno el post.
Mi pregunta es la siguiente es que soy nuevo en WordPress. Podria decirme los pasos para poder traducir el pluings Members. Copio los archivos en languages pero me inmagino que despues lo tengo que llamar en algun lado podria ayudarme.
Saludos y siga asi..
Eduardo Larequi dice
Los ficheros de traducción del plugin Members son dos: el que tiene extensión .PO (que es el catálogo de traducción), y el que tiene extensión .MO, que es el único que hace falta para que el plugin sea traducido. El fichero .PO se puede editar con una herramienta como PoEdit, la cual genera automáticamente el fichero .MO.
Para que el plugin aparezca traducido, lo mejor es subir ambos ficheros (aunque ya hemos dicho que en realidad solo hace falta el .MO) al directorio /languages del plugin.
Además, hace falta que el blog tenga definido como idioma el español. Hay que comprobar que en el fichero wp-config.php haya una línea con el siguiente contenido:
define(‘WPLANG’, ‘es_ES’);
Francisco dice
Hola! Tengo un problema con este plugin. He creado un rol determinado con algunas capacidades restringidas. Pero ahora cuando creo un página o entrada no me da la opción de poner o quitar los comentarios. Estoy usando también Adminimize pero la casilla correspondiente de permisos está activada (osea, no restringida para este Rol), así que supongo que es una capacidad de Members que viene desactivada por defecto pero no encuentro.
¿Me puedes echar un cable?
Gracias!
Eduardo Larequi dice
Es posible, Francisco, que en la página del editor de WordPress se haya desactivado la casilla que controla la caja en la que se pueden habilitar y deshabilitar los comentarios. En la parte superior de la página del editor, despliega el botón denominado «Opciones de pantalla» y verifica que la casilla «Comentarios» esté activa.
Francisco dice
Ufff… qué tontería… Muchísimas gracias, era exactamente eso. He echado toda una mañana buscando en los roles, los usuarios y al final era tan simple…
Siempre se me olvida el menú de Opciones de Pantalla…
¡Me has hecho un rey! :D
Eduardo Larequi dice
Me alegro de haber podido ayudarte, Francisco. A menudo, las cosas más simples se atragantan.
jose luis hernández dice
Hola Eduardo.
Muchas gracias por este post, me ha sido de gran ayuda. Pero tengo un problemilla. Al conectarse un usuario, va al panel de control, en lugar de ir a la página principal. ¿Cómo se puede hacer que vaya a la página principal?
Muchas gracias y un saludo,
Jose Luis
jose luis hernández dice
Eduardo, he visto que eso sólo me pasa cuando me registro desde la página de wp-login, no desde el formulario de registro, así que no hay problema.
Pero tengo otra duda: las ventanas para registrarse son muy grandes para mi plantilla, y no quedan bien. ¿Cómo se podrían acortar?
Gracias de nuevo
Eduardo Larequi dice
Efectivamente, José Luis, si inicias sesión desde el widget que proporciona el plugin Members, seguirás en la misma página del frontend donde has realizado esta acción. En cuanto a la pregunta sobre el tamaño de la ventana de registro, no sé por qué ocurre lo que dices, ya que el widget para iniciar sesión debiera ocupar la anchura disponible en el área de widgets, y no más. En todo caso, es difícil responder sin ver la plantilla. ¿Me puedes mandar un enlace a tu sitio?
jose luis hernández dice
Muchas gracias por tu respuesta, Eduardo. Sobre ver la plantilla, el problema es que lo estoy haciendo en local, así que no puedo ponerte un enlace, pero el problema es que sobresale como 1 cm de una línea que tiene la plantilla como límite (en plan estético). He pensado que tal vez se pueda modificar en la parte del editor… pero he buscado, y no he encontrado donde se podría modificar. ¿Se te ocurre algún sitio donde se pueda fijar ese valor?
Muchas gracias de nuevo y un saludo,
Jose Luis
Eduardo Larequi dice
Lo único que se me ocurre es que encuentres la clase CSS que controla la anchura de ese widget, y añadas a la hoja de estilo un atributo «width» que te permita fijar la anchura al valor que tú quieras. Como esta acción tiene su dificultad (hay que saber qué fichero CSS tocar, qué valor hay que modificar, etc.), te aconsejo que utilices la extensión Firebug, para el navegador Firefox.
No obstante, algo extraño hay en el funcionamiento de la plantilla, porque el widget de inicio de sesión creado por el plugin Members debiera poder aprovechar el ancho disponible en la barra lateral. La mayoría de los temas se diseñan con barras laterales de unos 250 píxels de ancho, o incluso algo más, lo cual es suficiente para el formulario de inicio de sesión. Puedes ver un ejemplo en este sitio, cuya barra lateral tiene 280 píxels de ancho: http://docentes.educacion.navarra.es/elarequi/blog1/. El primer widget de la barra lateral es el de inicio de sesión, creado por el plugin Members.
jose luis hernández dice
Muchas gracias, Eduardo. Lo de usar el firebug de firefox, no lo sé hacer (de hecho, ni sé lo que es un firebug). Así que creo que lo voy a dejar como está, que no es que quede perfecto, pero tampoco queda muy mal… y prefiero dejarlo así, antes que empezar a tocar cosas y acabar cargándome algo, sinceramente.
Muchas gracias de nuevo,
Jose Luis
Carlos dice
Hola Eduardo, segui exactamente las instrucciones:
Para que el plugin aparezca traducido, lo mejor es subir ambos ficheros (aunque ya hemos dicho que en realidad solo hace falta el .MO) al directorio /languages del plugin.
Y verifique el idioma el español:
Además, hace falta que el blog tenga definido como idioma el español. Hay que comprobar que en el fichero wp-config.php haya una línea con el siguiente contenido:
define(‘WPLANG’, ‘es_ES’);
Pero no me aplicó la traducción al español, disculpa, se requiere algún paso más, de antemano gracias, saludos cordiales.
Eduardo Larequi dice
Carlos, has enviado el comentario dos veces, así que he borrado uno de los dos.
En cuanto a tu pregunta, para traducir el plugin Members (o cualquier otro), solo necesitas hacer lo que he explicado:
1. Definir el idioma del blog en el fichero de configuración de WordPress, que está en el directorio raíz de la aplicación, y se llama wp-config.php. Si el blog está configurado en el idioma español de España, la línea será
define('WPLANG', 'es_ES');
2. Subir el fichero de traducción members-es_ES.mo al directorio /wp-content/plugins/members/languages.
Y eso debiera ser suficiente. No hay que hacer nada más.
Fran dice
Buenos noches:
He creado una sencilla pág. en wordpress y quisiera ponerle contraseña, al estilo de la opción que da wordpress para generar contraseña y al cargar la pág. te pide que la ingreses.
Ya le he asignado la plantilla personalizada a la pág. creada.
Saludos.
Eduardo Larequi dice
No estoy muy seguro de entender el sentido de tu comentario, Fran, pero para convertir la entrada en privada mediante el plugin Members no hace falta asignarle ninguna plantilla personalizada. Basta con asignarle los permisos de contenido necesarios, mediante la caja de edición que a tal efecto proporciona el plugin Members.
Para que esta caja esté disponible, previamente hay que entrar en la configuración del plugin Members y activar la opción de “Activar la característica de permisos para el contenido”.
victor dice
como se cierra sesion con este plug in
Eduardo Larequi dice
Si utilizas el widget de inicio de sesión que proporciona el plugin Members, Víctor, verás que no dispone de un enlace para cerrar sesión, por lo que tendrás que entrar en el backend, o cerrar sesión mediante las funciones que WordPress proporciona para ello en el frontend, tales como la barra de administración superior o el widget «Meta».
Ruben dice
Gracias por el post, me ha sido de gran utilidad!
Eduardo Larequi dice
Me alegro de que te haya resultado útil el artículo, Rubén, y muchas gracias por leer este blog.
Miguel Mora dice
He probado varios plugings de este tipo sin fortuna, no conseguía lo que quería o no sabía cómo hacerlo. Dí un buen día con Members y fue todo un descubrimiento. Fabuloso y muy recomendable. Muy fácil de usar.
Eduardo Larequi dice
Me alegro mucho, Miguel, de que te haya sido útil el plugin (y ojalá también este artículo).
Jorge Linares dice
Buenas tardes, es un articulo de gran utilidad, muchas gracias. Sin embargo me surgió una duda, ¿Puedo asignar un sin fin de roles con el plugin members? unos 40 roles diferentes mas o menos?