Die Plugins, die ich nach einer kurzen Suche (wir können hier keine aufwendige Plugin-Recherche übernehmen) dazu gefunden habe, wollten irgendwie nicht so recht funktionieren oder passten nicht zu den Anforderungen. Da aber „jeder Tipp willkommen“ ist, hier ein anderer Vorschlag: Am einfachsten ist es wohl, mit dem Plugin Code Snippets eine eigene Funktion hinzuzufügen, die den Standard-Text für passwortgeschützte Beiträge ersetzt.
Der Standardtext, der bei passwortgeschützten Beiträgen ausgegeben wird, lautet „Dieser Inhalt ist passwortgeschützt. Um ihn anschauen zu können, bitte das Passwort eingeben:“. Ich habe nun drei passwortgeschützte Beiträge erstellt und „Geheim 1“, „Geheim 2“ und „Geheim 3“ genannt. Die „Slugs“ (Titelform des Beitrags) sind entsprechend geheim-1
, geheim-2
und geheim-3
. Für die ersten beiden Beiträge möchte ich einen Hinweis zum Passwort geben, der dritte Beitrag soll den Standard-Text ausgeben. Dazu füge ich folgende Funktion ein:
add_filter('the_password_form', 'pix_change_default_message');
function pix_change_default_message ($output) {
$default_text = 'Dieser Inhalt ist passwortgeschützt. Um ihn anschauen zu können, bitte das Passwort eingeben:';
global $post;
$post_slug = $post->post_name;
switch($post_slug) {
case 'geheim-1':
$new_text = 'Gib die ersten vier Ziffern von 1234567890 ein';
$output = str_replace($default_text, $new_text, $output);
break;
case 'geheim-2':
$new_text = 'Gib die letzten vier Ziffern von 1234567890 ein';
$output = str_replace($default_text, $new_text, $output);
break;
}
return $output;
}
Der neue Text wird dann bei den Beiträgen „Geheim 1“ und „Geheim 2“ anstelle des Standardtext angezeigt:
(zum Vergrößern anklicken)
Ein paar Zeilen zur (nicht ganz vollständigen) Programmierung:
- Die Wiederholung der Zeile
$output = str_replace($default_text, $new_text, $output);
ist nicht schön, das lässt sich sicher besser umsetzen. @bscu wüsste sicher eine bessere Lösung?
- Das Ganze funktioniert nur, wenn du eine überschaubare Anzahl an passwortgeschützten Beiträgen hast und sie nicht laufend wechseln möchtest. Sonst wäre es sicher sinnvoller, mit Custom Fields zu arbeiten, in denen der Passworthinweis abgelegt wird.
- Der Code enthält keine Funktion, die den Hinweis erst nach einer bestimmten Zeit anzeigt. Der Tipp wird auch nicht als Popup angezeigt. Wie gesagt: die Programmierung ist nicht ganz vollständig.
Beim Code habe ich mich am Beitrag How to hide or change Password Protected message in WordPress orientiert.