it-swarm.com.de

Gibt es eine Möglichkeit (Plugin?), Einen Benutzer darauf zu beschränken, nur eine Seite bearbeiten zu können?

Wir verwenden WordPress wie ein CMS und möchten den Nutzern eine "Homepage" ermöglichen. Im Idealfall würden sie daran gehindert, die gesamte Site durcheinander zu bringen.

Gibt es eine einfache Möglichkeit, die Bearbeitungsrechte von Benutzern auf eine einzelne Seite zu beschränken?

Ich verwende derzeit das Members-Plugin , um andere auf Berechtigungen basierende Aufgaben zu erledigen. Es wäre also großartig, wenn eine Lösung dies entweder ordentlich ergänzen oder vollständig ersetzen könnte.

Bonuspunkte für die automatische Erstellung einer Homepage beim Anlegen eines neuen Benutzers.


UPDATES: Ich sollte klarstellen, dass diese Seiten auf einen bestimmten Bereich der Website beschränkt sein müssen (d. H. Alle Kinder derselben Seite). Nach einem Gespräch mit einigen Benutzern scheint es für sie auch nützlich zu sein, Unterseiten zu erstellen, die von ihrer Homepage aus verzweigen.

9
Tom Wright

Tut mir leid, aber ich bin über die Antwort gestolpert in den WordPress-Foren .

Es stellt sich heraus, dass Role Scoper das wirklich gut macht. Der Autor dieses Forumsbeitrags sagte es am besten:

So ermöglichen Sie einem Benutzer das Bearbeiten einer bestimmten Seite, jedoch nichts anderem:

  1. Geben Sie ihnen eine WordPress-Rolle als Abonnent
  2. Verwalten> Seiten> Seite bearbeiten
  3. Erweitern Sie die Registerkarte "Editoren" unter "Erweiterte Optionen"
  4. Aktivieren Sie das Kontrollkästchen "Nicht geschweift" links neben dem Namen Ihres Benutzers (wenn untergeordnete Seiten erstellt werden, aktivieren Sie auch das Kontrollkästchen "Geschweift" {[]}, mit dem die Rolle für alle aktuellen oder zukünftigen untergeordneten Seiten zugewiesen wird).
  5. Speichern Sie die Seite
4
Tom Wright

Eine Basis-WordPress-Installation wird wahrscheinlich nicht das tun, was Sie wollen. Sie können eine Multi-Site-Instanz einrichten und Benutzern erlauben, ihre eigene Unter-Site zu haben, oder BuddyPress oder Mingle verwenden, die über eine Benutzerprofilfunktion verfügen.

5
Norcross

Ich war mit der gleichen Situation konfrontiert wie Sie und habe einen benutzerdefinierten Beitragstyp mit dem Namen "homepage" und das Plugin "Bainternet Posts Creation Limits" erstellt, um die Erstellung jedes Beitragstyps pro Benutzer zu begrenzen. Probieren Sie es aus http://wordpress.org/extend/plugins/bainternet-posts-creation-limits/

3
Bainternet

Das User Access Manager Plugin erledigt dies für Sie, alle anderen Ansätze sind viel zu kompliziert. UAM ist ganz einfach: Richten Sie Gruppen ein und weisen Sie die Gruppe Ihren Unterseiten zu.

2
BUGHUNTER

Die Warnung impliziert, dass Sie die Bearbeitung von "normalen" Beitragstypen (Beitrag, Seite) deaktiviert haben.

Es ist nicht so schwer, wie Sie vielleicht glauben. Der Schlüssel ist der Benutzername . Dasselbe könnte mit Taxonomien oder sogar Begriffen geschehen.

Siehe folgendes (es gibt auch ein Beispiel für eine Abfrage):

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

Bei Taxonomien wäre dies sogar sinnvoller, da Sie nur die Beiträge abfragen könnten, die mit Begriffen aus den Taxonomien dieses Benutzers versehen sind, für die jedoch ein Post-Meta-Feld mit den Taxonomiebegriffen des Benutzers erforderlich wäre. Die Bedingung wäre die gleiche: Benutzer-Login-Name und Sie würden nur die Taxonomie hinzufügen:

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' );

Die Platzierung der Fähigkeitsprüfung (current_user_can) könnte auch eine andere sein. Kommt ganz auf Ihre speziellen Bedürfnisse an. Um dies sicher zu stellen: Dies sind Beispiele, die Sie auf Ihrem Weg zu einer Lösung führen. Hoffe das hilft :)

1
kaiser

Ich würde den Capability Manager verwenden oder Rollen und Funktionen im Codex auschecken, um dies zu tun.

1
Ben West

dies ist mit dem plugin s2member möglich, die kostenlose version reicht aus. Ich habe einen Kundenbereich erstellt, in dem jeder Kunde eine URL hat. Hier finden Sie ein Video-Tutorial: http://www.primothemes.com/forums/viewtopic.php?f=4&t=586&start=0&hilit=client+area

0
paul

Ich habe etwas Ähnliches mit "Mitgliedern", einem benutzerdefinierten Beitragstyp und einer manuellen Zuweisung von Autorenrechten an ein bestimmtes Mitglied gemacht, da es sich um eine Website für kleine Gruppen handelt, aber ich erinnere mich, dass ich in einem Buddy-Presse-Support-Thread gelesen habe, dass dies möglich ist Ich nehme an, dass es möglich ist, bei der Anmeldung automatisch einen Seiten-/benutzerdefinierten Beitragstyp pro Benutzer zu erstellen und diese bestimmte Seite dem neu erstellten Mitglied als Startseite zuzuweisen. Ich habe auch Scribus Frontend-Editor hinzugefügt und das Backend für Mitglieder gesperrt, die keine Administratoren sind. Sie können wahrscheinlich auch eine Weiterleitung bei der Anmeldung hinzufügen, damit neue Mitglieder zu ihrer Seite weitergeleitet werden (die vermutlich Standardinhalte haben könnte).

Ich werde sehen, ob ich diesen Buddypress-Support-Thread finde.

Nachtrag - Es gibt einen Fehler in der Autorenauswahl im Feld Beitrag bearbeiten. Derzeit wird das Standard-Berechtigungssystem nicht verwendet, wodurch die Lösung für Mitglieder möglicherweise schwieriger wird (obwohl dies wahrscheinlich funktionieren wird, wenn der Autor bei der Seitenerstellung zugewiesen wird). Es gibt einen Patch in trac, aber ich glaube nicht, dass er auf den Core angewendet wurde.

0
user2789