WordPress: Privat/Geschützt vom Artikel-Titel entfernen

Von | 16. April 2010

Es gibt in WordPress die schöne Funktion passwortgeschützte oder private Artikel zu erstellen, einfach im WordPress-Backend die Sichtbarkeit auf die gewünschte Option einstellen und fertig. Allerdings gibt es einen, wie ich finde, unschönen Nebeneffekt. Vor dem Titel des passwortgeschützten Artikel fügt WordPress automatisch “Geschützt:” ein.

Das sieht nicht in jedem Theme schön aus und manch einer möchte das nicht dort stehen haben. Die Eingabe das Kennworts nach einem Klick auf den Artikel sollte Hinweis genug sein, das der Artikel geschützt ist. Wie immer ist es am einfachsten die paar Zeilen Code in die functions.php eures aktivierten Themes zu kopieren.

<?php
function trim_title($title) {
	$title = utf8_decode($title);
	$find = array('/Protected: /','/Private: /','/Privat: /','/Geschützt: /');
	$replace = array('','','','');
	$title = preg_replace($find, $replace, $title);
    $title = utf8_encode($title);
	return $title;
}
add_filter('the_title', 'trim_title');
?>

Der Code funktioniert mit der deutschen und der englischen Version von WordPress. Weitere Sprachen können durch hinzufügen in den Arrays auch mit aufgenommen werden.

Aktualisierung vom 12. August 2010 und vom 05. September 2010
Danke an Jan für den Tip in den Kommentaren.

  • Ben

    Bei mir funktioniert das leider nicht.
    Habe die aktuelle WP Version drauf und nutze das Theme Blueblog.
    Bin über das Dashboard in die functions.php und habe o.g. Code eingetragen. Leider passiert keine Veränderung.
    Rat?

  • http://www.galuba.net René

    @Ben
    Ich habe mir das Theme Blueblog mal lokal installiert und habe den Code wie beschrieben eingebaut. Es hat dann auch alles funktioniert. Vielleicht gibst du mal einen Link zu deinem Blog, dann könnte ich evtl. schon mehr dazu sagen.

  • Ben

    Hi Rene!
    Danke fürs Angebot.
    Hab jetzt nochmal den Code in meiner eingefügt und die Seite Galerie mit einem Passwort geschützt. Erstens wird des ü zu einem Fragezeichen (müsste man durch ü ersetzen, dann siehts wieder normal aus) und zweitens is des “Geschützt” noch da…
    Vielleicht hab ich es ja ned ganz richtig gemacht. Du erreichst mich über ICQ-Nr. xxxxxx (wär nett wenn du die Nummer aus dem Comment wieder löschst)
    Greetz,
    Ben

  • René

    Hallo Ben,

    so ich habe mir das mal näher angeschaut. Das Fragezeichen ist ein Hinweis darauf, dass die Seite nicht im UTF-8 Format zurückgegeben wird. Wird das “ü” im Titel denn auch ohne meinen Code falsch ausgegeben?

  • Melanie

    Hallo René, bei mir funktioniert der Code auch, allerdings habe ich das gleiche Problem wie Ben. Auf der Seite “Über mich” wird das Ü plötzlich nach Änderung der function.php durch eine Raute mit Fragezeichen drin ersetzt. Was kann ich dagegen tun?

  • http://boarchitekt.net Jan Bodenstein

    Umlautproblem:
    Am Anfang der function wird mit utf8_decode($title) dekodiert. Der Titel muss zum Schluss, also nach den Ersetzungen, wieden zurück codiert werden. Fügt folgende Zeile vor der Zeile
    return $title;
    ein
    $title = utf8_encode($title);
    Das wars dann schon.
    Jan

  • René

    Danke für den Tip, ich habe den Artikel direkt mal ergänzt.

  • http://www.boarchitekt.net Jan Bodenstein

    In der Anwendung des Codeschnipsels hat sich ergeben, dass es notwendig ist, hinter dem Doppelpunkt jeweils noch ein Leerzeichen zu platzieren.
    Alt: $find = array(‘/Protected:/’,’/Private:/’,’/Privat:/’,’/Geschützt:/’);
    Vorschlag: $find = array(‘/Protected: /’,’/Private: /’,’/Privat: /’,’/Geschützt: /’);
    So hat entfernt man die automatischen Ergänzung vollständig.
    Jan

  • http://www.boarchitekt.net Jan Bodenstein

    So hat entfernt man…
    Tolles Deutsch :)

  • http://www.galuba.net René

    Oh, das hätte ich fast übersehen. Die Änderung macht Sinn, da ansonsten in der ersetzten Headline das Leerzeichen fehlt.

    Artikel wird geändert.

  • Internetradio

    Hey, wozu eine neue Funktion einbauen… einfach mal die Datei /wp-includes/post-template.php bearbeiten und dort nach “Private %s” suchen und das Private einfach löschen (das %s lassen) :) das Private nervt mich auch ständig.. da werden solche Titel wie “Private: Bestellung auf Rechnung” obwohl die Zielgruppe Firmen sind und keine “private” lol.

  • http://www.galuba.net René

    Bei einem Update musst du diese Schritte jedes Mal wiederholen, das wäre zu viel Arbeit jedes Mal daran zu denken. Da ist eine zusätzliche Funktion wesentlich angenehmer.

  • Ole

    Ich nutze ein eigenes Theme, was ich mit Artisteer erstellt habe. Zudem nutze ich einige Plugins.
    Der Code funktioniert bei mir nicht. Ich glaube es liegt datran, das schon ein anderes Plugin irgendwo den title “bearbeitet”. Ich dachte die functions.php würde generelle Einstellungen machen (Übergeordnete). Dem scheint wohl nicht so, oder waran kann es noch liegen?

  • Dennsen

    aaaaaahhh Ich hab das in meine function.php kopiert, dann aktualisiert und nun komm ich nicht mehr auf meinen blog. Das ganze sieht so aus: http://www.dennsation.com und ich habe die info:

    Parse error: syntax error, unexpected T_PROTECTED in /homepages/7/d322325960/htdocs/blog/wp-content/themes/destyle/functions.php on line 4

    Was kann ich tun? HILFE

  • http://www.galuba.net René

    Ohne deine functions.php zu sehen ist das natürlich schwierig zu sagen. Das < ?php und das ?> darfst du natürlich nicht mit kopieren. Die Zeichen stehen normalerweise schon in der functions.php drin.

  • Dennsen

    hat sich schon erledigt, hab einfach die alte function.php wieder reingeladen.

  • Daniel

    Hallo René,

    gibts denn auch die Möglichkeit bei geschützen Artikeln irgendeinen Text anstelle des Titels anzeigen zu lassen solange dieser geschützt ist? z.B. “Geschützer Artikel” und der eigentliche Titel wird erst sichtbar nach Eingabe des Passworts?