Permitir que los miembros tengan acceso solo al tipo de publicación personalizada. Permiso para editar solo sus propias publicaciones.

25

OK, estoy buscando la mejor forma de atacar esto.

Me siento muy cómodo con PHP y hago tipos de publicación personalizados con campos de metadatos personalizados en WordPress.

Esto es lo que estoy mirando hacer:

  1. El usuario se registra y se establece en     suscriptor por defecto.
  2. El usuario solicita que el administrador tenga     permiso para el tipo de publicación personalizada.
  3. El administrador asigna un usuario a otro     nombre de permiso como "propietario de la tienda".
  4. El usuario ahora puede ver el tipo de publicación personalizada y puede hacer una entrada a este post. tipo.
  5. El usuario solo puede ver y editar sus propios publicar.

Necesito ayuda con lo siguiente:

  1. Cómo crear un nuevo "rol" llamado "Propietario de la tienda",
  2. Cómo dar el permiso correcto a dicho rol solo para ver y tener acceso al tipo de publicación personalizada.
  3. Permitir que el usuario solo vea y edite sus propios mensajes a este mensaje personalizado tipo.

Idealmente, preferiría que todo esto se hiciera desde el administrador de wp, pero supongo que es posible que tenga que crear una interfaz para esto para obtener el control finito que busco.

Cualquier entrada es muy apreciada.

Saludos cordiales

    
pregunta Brady 12.04.2011 - 12:08

3 respuestas

19

Use el complemento de Justin Tadlock " Members ". Le brinda la capacidad de crear nuevos roles y editar roles existentes, así como agregar capacidades personalizadas. Todo el trabajo que tendría que hacer puede reducirse a unos pocos clics.

Sé que dijiste en tu comentario sobre la respuesta de ZaMoose que estás "buscando escribir la funcionalidad yo mismo, así que tengo control total sobre todo". Falta todo el punto del software de código abierto. Justin Tadlock lanzó su complemento para que pudieras usarlo de manera precisa para que tuvieras un control completo sobre todo.

Si realmente realmente quieres reinventar la rueda, potencialmente desperdiciando cientos de horas de tu propio tiempo no puedo detenerte, pero al menos podrías ahorrarte el problema y usar el complemento de Tadlock para aprende a hacer lo que quieras.

Una vez que tenga un complemento que haga lo que desea, deberá cambiar el indicador 'map_meta_cap' a true y el indicador 'capability_type' en su función de registro de tipo de publicación para que indique algo distinto a 'publicar ',' página ', o cualquier otro tipo' reservado '. Luego, duplique todas las capacidades relacionadas con las publicaciones (por ejemplo, edit_posts , edit_others_posts , publish_posts , etc.), usando su tipo de capacidad en lugar de las publicaciones. Asegúrate de asignar todos estos permisos a los administradores (no podrás ver el tipo de publicación hasta que hagas esto), luego crea tu función, imitando las capacidades de la función "contribuyente" para tu tipo de publicación.

Por ejemplo, digamos que su tipo de capacidad era foobars , le gustaría darle a los 'propietarios de tiendas' las capacidades edit_foobars , delete_foobars y read . De esa manera, pueden crear sus propios foobares de borrador y eliminar esos borradores, pero como no tienen capacidades de publish_foobars , deben enviarlos para su aprobación. Debido a que no tienen edit_published_foobars , todas las modificaciones a un foobar aprobado deben ser aprobadas.

    
respondido por el John P Bloch 12.04.2011 - 16:49
16

El tipo de publicación de registro tiene un parámetro llamado "capacidades" que puede tener, por ejemplo,

'capability' => __('organize_shop'),

enlace

Para crear un nuevo usuario / rol / capacidad, puede usar add_role, add_cap, como ejemplo sencillo para comenzar:

add_role( 'shop_owner', 'Shop Owner', array( 'edit_posts' => true, ) );
$wp_roles->add_cap( 'Shop Owner', 'organize_shop' );
$role->add_cap( 'organize_shop' );
    
respondido por el Wyck 12.04.2011 - 17:06
1

¿Ha considerado consultar Gravity Forms o TDO Mini Forms para manejar el envío de contenido real? Cada uno de ellos tiene una funcionalidad que lo guiará en el camino hacia el manejo adecuado del contenido enviado por el usuario.

    
respondido por el ZaMoose 12.04.2011 - 15:37

Lea otras preguntas en las etiquetas