Für Menschen · Seien Sie begeistert und Sie werden begeistern !

Mitunter nutzt man die Funktion der privaten Beiträge in WordPress. Diese Beiträge kann nur der User sehen, der sie erstellt hat, bzw. die Rolle des Administrators. Um alle Usern diese Artikel zu zeigen, die im System angemeldet sind, kann man verschiedene Wege gehen. Ich möchte mal zwei unterschiedliche Wege kurz aufzeigen.
Mit Hilfe der Benutzerdefinierten Feldern wird ein neues Feld private gepflegt; wenn man den Post sehen darf, dann ist dieses Feld mit dem Wert true zu pflegen. Dieses Feld fragen wir dann in der Loop bei der Ausgabe im Frontend ab.
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// the loop
$private = get_post_custom_values('private'); // read custom field
if ( isset($private[0]) && $private == 'true' ) {
if ( is_user_logged_in() ) {
// display private post, only logged users
}
} else {
// display public post, for every visitors
}
endwhile;
endif;
Eine andere Methode ist es via Funktion das Berechtigungsobjekt der entsprechenden Rolle zu geben. Dies kann man mit Hilfe eines Plugins tun, zum Beispiel Members, oder einfach mit einem kleinen Codeschnipsel in functions.php des Themes. Der jeweilige Schnipsel muss nur einmal aufgerufen werden, danach kann er entfernt bwz. auskommentiert werden, da das Berechtigungsobjekt in der Datenbank abgespeichert wird.
Das Hinzufügen des Berechtigungsobjektes zum Lesen privater Beiträge read_private_posts zur Role des Autors author.
function fb_add_cap2role() {
global $wp_roles;
$wp_roles->add_cap('author', 'read_private_posts');
}
add_action( 'init', 'fb_add_cap2role' );
Ebenso können die Rechte natürlich wieder entfernt werden, dies geht beispielsweise mit der folgenden kleinen Lösung.
function fb_remove_cap2role() {
global $wp_roles;
$wp_roles->remove_cap('author', 'read_private_posts');
}
add_action( 'init', 'fb_remove_cap2role' );
bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.
Das Weblog wird angetrieben von WordPress und aktuell gibt es 980 Beiträge, 18722 Kommentare in 14 Kategorien und 464 Tags.
Das Blog wird liebevoll mit xHTML & CSS in Handarbeit gestaltet. Erstellt mit ♥ zum Befüllen und Erhalten.
Design und Code ist unter Copyright
© 2001 - 2012 bueltge.de [by:ltge.de]
12. Januar 2010 um 21:05
Hi, cooler Gedanke vor allem im Bezug auf die "Wartungsfreie" Lösung mit dem Berechtigungsobjekt. Leider bleiben die Pages im "private" Zustand aber dennoch von der Navigation verborgen.
12. Januar 2010 um 21:13
Nachtrag: Wer Plugins mag - das könnte helfen
http://thomas.lippert.it/v4/wordpress-plugins/logged-in-only/13. Januar 2010 um 10:44
@Carsten: Alternativ kannst du das Menu von WP erweitern, siehe Beitrag dazu.