¿Hay alguna manera (plug-in?) Para restringir a un usuario para poder editar una sola página?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/1736

Pregunta

usar WordPress como un CMS y sería muy parecido al permitir que los usuarios tengan una "página de inicio". Lo ideal sería que estarían impedidos de ensuciar todo el sitio.

¿Hay una manera sencilla a los usuarios limitar los derechos de edición a una sola página?

Actualmente estoy usando los miembros complemento para hacer otras cosas basado en el permiso , así que sería genial si una solución bien podría aumentar ordenadamente esto, o reemplazarlo por completo.

Los puntos de bonificación para la creación automática de una página de inicio cuando se crea un nuevo usuario.


Actualizaciones: Debo aclarar que estas páginas tienen que ser confinado a un área específica del sitio (es decir, todos los niños de la misma página). Además, después de hablar con algunos usuarios parece que se iba a encontrar la utilidad de crear sub-páginas que se ramifica desde su página principal.

¿Fue útil?

Solución 2

En este momento para hacer esto, pero se topó con la respuesta en los foros wordpress .

Resulta que papel Scoper hace esto muy bien. El autor de ese mensaje en el foro dijo mejor:

Para permitir que un usuario editar una página en particular, pero no cualquier otra cosa:

  1. Dales un papel de WordPress suscriptor
  2. Administrar> Páginas> Editar su página
  3. Ampliar la ficha "Editores" en "Opciones avanzadas"
  4. Compruebe la casilla de verificación sin férula a la izquierda del nombre de su usuario (si se crearán páginas secundarias, también marca la casilla Braced {[]}, que asigna el papel para todas las páginas infantiles actuales o futuros)
  5. Guardar la página

Otros consejos

instalación de WordPress base A probablemente no va a hacer lo que desea. Usted podría crear una instancia de multi-sitio y permitir que los usuarios tienen su propio sitio 'sub', o algo así como el uso BuddyPress o se mezclan que tiene una función de perfil de usuario.

Me enfrentó la misma situación que tú y lo que hice fue crear un tipo de mensaje personalizado denominado "página de inicio" y también creó 'Límites Bainternet Mensajes Creación' plugin para limitar la creación de cada tipo de mensaje por usuario. Inténtelo hacia fuera http://wordpress.org/extend/plugins/bainternet-posts -Creación plazos /

El usuario de Access Manager Plugin va a hacer esto para usted, todos los otros enfoques son demasiado complicado. UAM es fácil, grupos de configuración y asignar el grupo a sus sub-páginas, listo.

Me haría uso de la Capacidad Gestor o echa un vistazo a las funciones y capacidades en el Codex con el fin para hacer esto.

Los implys sollution que ha desactivado la edición de tipos "normales" de correos (correos, página).

Es no lo más fuerte que pueda creer. El clave es el nombre de inicio de sesión de usuario . El mismo podría hacerse con las taxonomías o incluso términos.

Ver la siguiente (hay un ejemplo de una consulta también):

// 1st: Add a post type for that user with it's 
//   user login & according capabilities 
function create_user_home() {
    global $current_user;
    get_currentuserinfo();

    register_post_type(
        'home_of_'.$current_user->user_login,
        array(
            'public' => true,
            'capability_type' => $current_user->user_login,
            'capabilities' => array(
                'publish_posts' => 'publish_'.$current_user->user_login,
                'edit_posts' => 'edit_'.$current_user->user_login,
                'edit_others_posts' => 'edit_'.$current_user->user_login,
                'delete_posts' => 'delete_'.$current_user->user_login,
                'delete_others_posts' => 'delete_others_'.$current_user->user_login,
                'read_private_posts' => 'read_private_'.$current_user->user_login,
                'edit_post' => 'edit_'.$current_user->user_login,
                'delete_post' => 'delete_'.$current_user->user_login,
                'read_post' => 'read_'.$current_user->user_login,
            ),
        )
    );
}
add_action( 'init', 'create_user_home' );

// A query could be done like this:
wp_reset_query(); // to be sure

global $wp_query, $current_user;
get_currentuserinfo();

$query_user_home = new WP_Query( array(
    ,'order'        => 'ASC'
    ,'post_type'    => 'home_of_'.$current_user->user_login
    ,'post_status'  => 'publish'
) );

if ( $query_user_home->have_posts() ) :
    while ( $query_user_home->have_posts() ) : $query_user_home->the_post();
        // check for password
        if ( post_password_required() ) :
            the_content();
        elseif ( !current_user_can('') ) :
            // display some decent message here
            return;
        else :

            // here goes your content

        endif;
    endwhile;

else : // else; no posts
    printf(__( 'Nothing from Mr./Mrs. %1$s so far.', TEXTDOMAIN ), $current_user->user_firstname.' '.$current_user->user_lastname);
endif; // endif; have_posts();

wp_rewind_posts(); // for a sec. query

Con taxonomías esto sería aún más sentido, porque se puede consultar sólo los mensajes que están etiquetadas con los términos de este usuarios taxonomías, pero que necesitaría un buzón meta con los términos de taxonomía usuarios. La condición sería el mismo: el nombre de inicio de sesión del usuario y que acababa de añadir la taxonomía:

function create_user_tax() {
    if ( current_user_can("$current_user->user_login") ) :
        global $current_user;
        get_currentuserinfo();

        $singular = $current_user->user_login;
        $plural = $singular.'\'s';

        // labels
        $labels = array (
                 'name'         => $plural
                ,'singular_name'=> $singular
            );

        // args
        $args = array (
             'public'               => true
            ,'show_in_nav_menus'    => true
            ,'show_ui'              => true
            ,'query_var'            => true
            ,'labels'               => $labels
            ,'capabilities' => array(
                'manage_'.$current_user->user_login
            )
        );

        // Register
        register_taxonomy ( 
             $current_user->user_login
            ,array ( 'post', 'page' )
            ,$args
        ); 
        // Add to post type
        // you can even add your current user post type here
        register_taxonomy_for_object_type (
             $current_user->user_login
             ,array ( 'post', 'page', 'home_of_'.$current_user->user_login ) 
        );
    endif;
}
add_action( 'init', 'create_user_tax' );

La colocación de comprobación de la capacidad (current_user_can) podría estar en algún otro también. Depende todo de sus necesidades específicas. Sólo para hacer de este seguro: Estos son ejemplos para guiarle en su camino a una sollution. Esperanza de que ayuda )

he hecho algo similar con "miembros", un tipo de envío personalizado, y una asignación manual de los derechos de autor a un miembro específico, ya que es un sitio web de un grupo pequeño, pero recuerdo la lectura de algún hilo de soporte buddypress que es posible enganchar en el proceso de registro, así que supongo que sería posible crear automáticamente un tipo de publicación de la página / personalizados para cada usuario de registro y asignar esa página específica al miembro recién creado como página de inicio. También he añadido editor de front-end de Scribu y bloqueó el back-end a los miembros que no son administradores. También es probable que pueda agregar una redirección en el registro para que los nuevos miembros son redirigidos a su página (que, supongo, podría tener algún contenido por defecto).

voy a ver si puedo encontrar ese hilo apoyo BuddyPress.

Adición - hay un error en el selector de autor en el campo de edición posterior. En la actualidad no utiliza el sistema de permisos estándar, que puede hacer que la solución de los miembros más difícil (aunque probablemente funcionará si se asigna el autor de la página-creación). Hay un parche en el trac, pero no creo que ha sido aplicada al núcleo todavía.

esto es posible con la s2member plugin, la versión gratuita es suficiente. He creado un área de cliente, donde cada cliente tiene una dirección URL hay un video tutorial aquí: http: // www.primothemes.com/forums/viewtopic.php?f=4&t=586&start=0&hilit=client+area

Licenciado bajo: CC-BY-SA con atribución
scroll top