Diese Anleitung ist nach wie vor die schnellste Möglichkeit! Ein Plugin dafür wäre mir nicht bekannt.
Im verlinkten Text wird das eh anschaulich und einfach erklärt. Und es geht recht schnell 🙂
okay, nur werden bei der Anleitung alle Texte geändert, ich will aber nur einen ändern. Wie ist das zu machen?
Indem du über die globalen Variablen herausfindest, auf welchem Post oder Page du dich befindest.
Da bekommst du die Post-ID bzw den Post-Namen.
Auf diese Daten kannst du im Hook dann überprüfen und nur dort den Text ändern!
Wenn ich das richtig verstehe, hast du (sinngemäß) ein halbes Dutzend passwortgeschützte Seiten, möchtest aber bei einer Seite „Top Secret“ einen anderen Text ausgeben, der auf den Passwortschutz hinweist. Dazu änderst du den Code so ab, dass auch abgefragt wird, ob gerade die Seite „Top Secret“ angezeigt wird:
add_filter( 'gettext', 'protected_filter_gettext', 10, 3 );
function protected_filter_gettext( $translated, $original, $domain ) {
if ( $original == "This content is password protected. To view it please enter your password below:" && is_page( 'Top Secret' ) ) {
$translated = "Nur für deine Augen, James.";
}
return $translated;
}
Grundsätzlich solltest du daran denken, dass das Parsen der Übersetzungen mit einem solchen Filter die Performance deiner Webseiten um einige Millisekunden verschlechtert. Wenn das kein Problem ist, nimmst du die Funktion oben. Falls dir das dann doch nicht so zusagt, solltest du ein Child-Theme erstellen, das Template page.php
in das Child-Theme kopieren und als page-top-secret.php
abspeichern und so ändern, dass der Passwortschutz geprüft und eine gewünschte Meldung ausgegeben wird. Viel Aufwand, aber für mit besserem Ergebnis für die Performance, die sich auch auf das Suchmaschinenranking auswirkt.