Est-il possible (plug-in?) Pour restreindre un utilisateur pour pouvoir modifier juste une page?

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

Question

Nous utilisons comme un CMS wordpress et serait très semblable pour permettre aux utilisateurs d'avoir une « page d'accueil ». Idéalement, ils seraient empêchés de déblayage l'ensemble du site.

Y at-il un moyen simple pour les utilisateurs de limiter l'édition des droits à une seule page?

Je suis actuellement en utilisant les plug-in Les membres pour faire d'autres choses avec permission , donc ce serait bien si une solution pourrait soit augmenter soigneusement cela, ou le remplacer entièrement.

Les points bonus pour la création automatique d'une page d'accueil lorsqu'un nouvel utilisateur est créé.


MISES À JOUR: Je dois préciser que ces pages doivent se limiter à une zone spécifique du site (à savoir tous les enfants de la même page). En outre, après avoir parlé à certains utilisateurs, il semble qu'ils trouveraient utile de créer des sous-pages de branchement à partir de leur page d'accueil.

Était-ce utile?

La solution 2

Désolé pour ce faire, mais je suis tombé sur la réponse dans les forums wordpress.

Il se trouve que rôle Scoper le fait vraiment bien. L'auteur de ce post sur le forum dit mieux:

  

Pour permettre à un utilisateur d'éditer une page particulière, mais rien d'autre:

     
      
  1. Donnez-leur un rôle de WordPress d'abonné
  2.   
  3. Gérer> Pages> Modifier leur page
  4.   
  5. Développez l'onglet "Éditeurs" sous "Options avancées"
  6.   
  7. Cochez la case non haubanée à gauche du nom de votre utilisateur (si les pages enfants seront créés, cochez aussi la case haubanée {[]}, qui attribue le rôle de toutes les pages enfants actuels ou futurs)
  8.   
  9. Enregistrer la page
  10.   

Autres conseils

Une installation de base de WordPress ne fera probablement pas ce que vous voulez. Vous pouvez configurer une instance multi-site et permettre aux utilisateurs d'avoir leur propre site « sous », ou utiliser quelque chose comme BuddyPress ou Mingle qui a une fonction de profil d'utilisateur.

Je fait face à la même situation que vous et ce que je faisais était de créer un type de poste personnalisé nommé « page d'accueil » et a également créé « Limites Bainternet messages Création » plugin pour limiter la création de chaque type poste par utilisateur. Essayez http://wordpress.org/extend/plugins/bainternet-posts -Création-limites /

L'utilisateur Access Manager Plugin fera ce sont beaucoup trop compliqué pour vous, toutes les autres approches. UAM est tout simple, les groupes de configuration et assigner le groupe à vos sous-pages, prêt.

J'utiliser le Gestionnaire capacité ou vérifier les rôles et les capacités en codex afin de le faire.

Les sollution implys que vous avez désactivé la modification de "normale" types post (post, page).

de pas aussi dur que vous pourriez croire. touche est le nom de connexion utilisateur . La même chose pourrait être fait avec des taxonomies ou des termes même.

Voir ci-après (il y a un exemple pour une requête aussi):

// 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

Avec taxonomies cela même plus de sens, parce que vous pouvez interroger uniquement les messages qui sont marqués avec les termes de cet utilisateur taxonomies, mais aurait besoin d'une boîte de méta post avec les termes de taxonomie des utilisateurs. La condition serait le même: nom de connexion utilisateur et vous aimerais ajouter la taxonomie:

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 mise en place de contrôle de capacité (current_user_can) pourrait être quelque part ailleurs aussi. Cela dépend tout de vos besoins spécifiques. Il suffit de faire ce que: Ce sont des exemples pour vous guider sur votre chemin à une sollution. Espoir que aide :)

Je l'ai fait quelque chose de similaire avec « membres », un type de poste personnalisé et une affectation manuelle des droits d'auteur à un membre spécifique, car il est un petit site web du groupe, mais je ne me souviens avoir lu dans un fil de soutien de presse de copain qui il est possible de connecter le processus d'inscription, donc je suppose qu'il serait possible de créer automatiquement un type de poste la page / personnalisée par utilisateur sur inscription et attribuer cette page spécifique au membre nouvellement créé en page d'accueil. J'ai aussi ajouté le rédacteur final avant de Scribu et bloqué le back-end aux membres qui ne sont pas administrateurs. Vous pouvez probablement ajouter également une redirection sur inscription afin que les nouveaux membres sont redirigés vers leur page (qui, je suppose, pourrait avoir un contenu par défaut).

Je vais voir si je peux trouver ce fil de support BuddyPress.

Addendum - il y a un bogue dans le sélecteur de l'auteur sur le champ post d'édition. Il utilise actuellement ne pas le système d'autorisation standard, ce qui peut rendre la solution plus difficile membres (bien qu'il ne fonctionnera probablement si l'auteur est attribué à la page de création). Il y a un patch trac, mais je ne pense pas qu'il a été appliqué à la base encore.

cela est possible avec le plug-in s2member, la version gratuite est suffisante. J'ai créé un espace client où chaque client a une URL il y a un tutoriel vidéo ici: http: // www.primothemes.com/forums/viewtopic.php?f=4&t=586&start=0&hilit=client+area

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top