Skip to content


Roles y capacidades en wordpress mu: Introducción y modelo de datos

WordPress mu es un sistema multi-usuario y multi-blog, de ahí que cada usuario del sistema puede ser miembro de más de un blog y en cada uno de ellos puede tener un rol distinto.

Los roles en wordpress mu son:

  • Administrator: Tiene acceso a todas las características administrativas.
  • Editor: Puede publicar y administrar sus propios artículos asi como los de otros usuarios.
  • Author: Puede publicar y administrar sus propios artículos.
  • Contributor: Puede escribir y administrar sus artículos, pero no los puede publicar.
  • Susbcriber: Alguien que puede leer comentarios, escribirlos, recibir boletines de noticias, entre otras cosas.http://bitacoras.com/noticias/wp-content/uploads/2009/07/xmas_wordpress_ex2.png

Lo que cada usuario puede o no puede hacer en el sistema se llama “Capacidad”. Por ejemplo, algunas de las capacidades del rol Editor son: delete_others_pages, delete_others_posts, delete_pages, delete_posts, delete_private_pages, delete_private_posts, delete_published_pages, delete_published_posts, edit_others_pages, edit_others_posts, edit_pages, edit_posts, edit_private_pages…… Los nombres de las capacidades son bastantes descriptivos. En definitiva, el conjunto de capacidades define de forma inequívoca un determinado rol de usuario.

¿Como almacena y gestiona el sistema de roles y capacidades wpmu (wp)?

Modelo de datos:

En la tabla wp_usermeta se guarda meta información de los usuarios, entre ellas el rol de cada usuario en cada uno de sus blogs. Esta tabla tiene 4 campos:

  • umeta_id: Identificador del registro y clave primaria.
  • user_id: Una referencia al identificador de usuario en la tabla wp_users.
  • meta_key: Almacena la “key” para identificar y poder interpretar el valor del siguiente y último campo (meta_value).
  • meta_value: Valor de la “key” del campo anterior (meta_key).

La “key” wp_N_capabilities” indica que el contenido del campo “meta_value” se interprete como el rol del usuario identificado por el valor del campo “user_id” en el blog con idenficador “N”. Una entrada en esta tabla sería de esta forma:

umeta_id user_id meta_key meta_value
6 1 wp_1_capabilities a:1:{s:10:”subscriber”;b:1;}

Está entrada indica que el usuario con id igual a 1, en el blog con identificador 1, tiene el rol subscriber. El valor del campo meta_value, a:1:{s:10:”subscriber”;b:1;}, es bastante enigmático ya que su formato está evidentemente pensado para que sea fácil de procesar por software y no por humanos. Obtener un array a partir de esta cadena con la función explode de php no parece tarea difícil.

Respecto a los capacidades, key wp_N_capabilities, los posibles valores de esta cadena son:

  • a:1:{s:6:”member”;b:1;}
  • a:1:{s:10:”subscriber”;b:1;}
  • a:1:{s:11:”contributor”;b:1;}
  • a:1:{s:6:”editor”;b:1;}
  • a:1:{s:6:”author”;b:1;}
  • a:1:{s:13:”administrator”;b:1;}

La cadena s:11:”contributor” indica que es un string de longitud 11 (s:11).

Las cadenas “a:1” y “b:1” son, de momento, un enigma…… Que espero resolver buceando por el código,…. pero esto para otro artículo.

Posted in Programación, Wpmu.

Tagged with , , .


0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.



Some HTML is OK

or, reply to this post via trackback.



Ir a la barra de herramientas