Frage

Wir verwenden WordPress wie ein CMS und möchten den Benutzern sehr ähneln, eine "Homepage" zu haben. Idealerweise würden sie verhindert, dass sie die gesamte Seite aufschlagen.

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

Ich benutze gerade die Mitglieder Plugin Um andere Berechtigungsbasis zu erledigen, wäre es großartig, wenn eine Lösung dies entweder ordentlich erweitern oder vollständig ersetzen könnte.

Bonuspunkte für die automatische Erstellung einer Homepage, wenn ein neuer Benutzer erstellt wird.


Aktualisierungen: Ich sollte klarstellen, dass diese Seiten auf einen bestimmten Bereich der Website beschränkt sein müssen (dh alle Kinder derselben Seite). Nachdem sie mit einigen Benutzern gesprochen haben, scheint es auch nützlich zu sein, Unterseite zu erstellen, die sich auf ihrer Startseite verzweigen.

War es hilfreich?

Lösung 2

Tut mir leid, das zu tun, aber ich bin über die Antwort gestolpert In den WordPress -Foren.

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

Damit einem Benutzer eine bestimmte Seite bearbeiten kann, aber nichts anderes:

  1. Geben Sie ihnen eine WordPress -Rolle des Abonnenten
  2. Verwalten> Seiten> ihre Seite bearbeiten
  3. Erweitern Sie die Registerkarte "Editoren" unter "Erweiterte Optionen"
  4. Überprüfen Sie das Kontrollkästchen Nicht-Breiten links vom Namen Ihres Benutzers (wenn untergeordnete Seiten erstellt werden, überprüfen Sie auch das versperrte Kontrollkästchen {[]}, das die Rolle für alle aktuellen oder zukünftigen Kinderseiten zuweist).
  5. Speichern Sie die Seite

Andere Tipps

Eine Basis -WordPress -Installation wird wahrscheinlich nicht das tun, was Sie wollen. Sie können eine Multi-Site-Instanz einrichten und Benutzern ermöglichen, eine eigene "Sub" -Seite zu haben oder etwas wie Buddypress oder Megel mit einer Benutzerprofilfunktion zu verwenden.

Ich habe die gleiche Situation wie Sie und ich habe einen benutzerdefinierten Post -Typ mit dem Namen "Homepage" erstellt und auch das Plugin "Bainternet Posts Erstellungsgrenzen" erstellt, um die Erstellung jedes Post -Typs pro Benutzer zu begrenzen. Versuch es http://wordpress.org/extend/plugins/bainternet-posts-creation-limits/

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

Ich würde das benutzen Capability Manager Oder überprüfen Sie die Rollen und Funktionen in Codex, um dies zu tun.

Die Sollution impliziert, dass Sie die Bearbeitung von "normalen" Post -Typen deaktiviert haben (Beitrag, Seite).

Es ist nicht So hart du vielleicht glaubenst. Das Schlüssel ist der Benutzeranmeldungsname. Gleiches kann mit Taxonomien oder sogar Bedingungen erfolgen.

Siehe Folgendes (es gibt auch ein Beispiel für eine Frage):

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

Mit Taxonomien würde dies sogar sinnvoller sein, da Sie nur die Beiträge abfragen könnten, die mit den Taxonomien dieser Benutzer mit den Bedingungen versehen sind. Dies würde jedoch ein Post -Meta -Box mit den Taxonomiebedingungen der Benutzer benötigen. Die Bedingung wäre der gleiche: Benutzeranmeldung 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 irgendwo anders sein. Hängt alle von Ihren spezifischen Bedürfnissen ab. Nur um dies sicher zu machen: Dies sind Beispiele, die Sie auf dem Weg zu einer Sollution führen. Hoffe, dass hilft :)

Ich habe etwas Ähnliches mit "Mitgliedern", einem benutzerdefinierten Post -Typ und einer manuellen Aufgabe der Autorenrechte an ein bestimmt Um sich in den Anmeldevorgang einzuschließen, kann es also möglich sein, automatisch eine Seite/benutzerdefinierte Post -Typ pro Benutzer bei der Anmeldung zu erstellen und diese spezifische Seite dem neu erstellten Mitglied als Homepage zuzuweisen. Ich habe auch Scribus Front-End-Redakteur hinzugefügt und das Backend zu den Mitgliedern, die keine Administratoren sind, blockiert. Sie können wahrscheinlich auch eine Weiterleitung bei der Anmeldung hinzufügen, damit neue Mitglieder zu ihrer Seite umgeleitet werden (was, wie ich vermute, einen Standardinhalt haben könnte).

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

Addendum - im Autor -Selektor im Feld Bearbeiten Post gibt es einen Fehler. Derzeit wird das Standard-Berechtigungssystem nicht verwendet, was die Mitgliederlösung möglicherweise schwieriger macht (obwohl es wahrscheinlich funktioniert, wenn der Autor auf die Seite der Seite zugewiesen wird). Es gibt einen Patch in TRAC, aber ich glaube nicht, dass er noch auf den Kern angewendet wurde.

Dies ist mit dem Plugin S2Member möglich. Die kostenlose Version ist ausreichend. Ich habe einen Kundenbereich erstellt, in dem jeder Client eine URL hat. Hier gibt es ein Video -Tutorial: http://www.primothemes.com/forums/viewtopic.php?f=4&t=586&start=0&hilit=client+Area

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top