Hallo, ich arbeite mit WP 2.5.1 und möchte einige Seiten (z.B. Danke-Seiten) nicht in der Navigation auftauchen lassen. Geht ja wunderbar mit dem Häkchen bei "Privater Artikel" oder "Privater Seite".
Das Unschöne daran: Verweise ich jemanden auf diese "Private Seite" steht vor der eigentlichen Seitenüberschrift dann immer ein "Privat:" Beispiel:
Privat: Vielen Dank für Ihre Anmeldung zu meinem Newsletter
Hat jemand eine Idee, wo und wie ich diesen "Privat:"-Vortext wegbekomme?
Private Seiten im Titel nicht kenntlich machen
-
-
- Gerade eben
- Anzeige
Hallo!
Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.
- ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
- ✔️ Deutsche Server & DSGVO-konform
- ✔️ Persönlicher Support (kein 0815-Ticket-System)
-
PHP
Alles anzeigen<?php /* Plugin Name: CyTBRemovePrivatePrefix Version: 0.1 Plugin URI: www.cywhale.de Description: Entfernt 'Privat: '-Prefix von Beitragstiteln Author: Cywhale Author URI: http://www.cywhale.de Min WP Version: 2.3 Max WP Version: 2.5 */ /* * Filterfunktion für the_title * Entfernt 'Privat:' oder 'Private:' Prefixe von Beitragstiteln * @param string $title, Beitragstitel * @return string, Umgewandelter Titel */ function cyTB_removePrivate($title) { return(preg_replace( '=^(Privat|Private)\:[\ +]=','', $title)); } // Filter anmelden add_filter('the_title','cyTB_removePrivate'); ?>
Entfernt 'Privat:Leerzeichen' und 'Private:Leerzeichen' am Anfang des Titels.
Wenn vorhanden kann man die Funktionen auch in die functions.php des Themes packen, spart ein Plugin.
Sollte auch <WP 2.3 funktionieren, mangels Testmöglichkeit kann ich das aber nicht sicher sagen.Grüsse
Edit: Schöne Idee, gleich einen Blogbeitrag draus gemacht :)
-
Super, vielen Dank!
Habe es gleich ausprobiert und der Vortext ist weg.
Kleines Manko: Ändere ich bei einer Privat-Seite den Status auf Nicht-Privat und klicke auf Speichern, bekomme ich folgende Fehlermeldung:
Warning: Cannot modify header information - headers already sent by (output started at XYZ\wp-content\plugins\CyTBRemovePrivatePrefix.php:29) in XYZ\wp-includes\pluggable.php on line 694
Gleiche Fehlermeldung taucht auch auf, wenn ich das Plugin deaktiviere.
Gibt es dafür auch noch eine ebenso brillante Lösung? -
Im obigen Code war ein Zeilenumbruch nach dem schliessenden ?>, das könnte der Fehler gewesen sein. Zur Sicherheit hier nochmal die Version die hier keine Probleme macht (zig Mal hin- und her privatisiert).
-
Perfekt!!!
Nochmals ein Riesendankeschön. Und vielleicht profitieren ja noch andere von deinem Engagement. Ich hatte schon stundenlang zu diesem Thema gegoogelt, ohne Erfolg. Damit dürfte jetzt eine weitere WP-Wissenlücke geschlossen worden sein. -
Wer es ohne Plugin machen will (ein Plugin verbraucht ja in gewisser Weise immer Ressourcen), der öffnet die "wp-includes/post-template.php" und sucht dort nach der Funktion "get_the_title". Dort kann man sehen, wie "Private:" und "Protected:" ergänzt werden, und diese Stellen kann man auskommentieren.
Wie gesagt, ich möchte damit weder die Arbeit noch das Plugin an sich schmälern, aber manchmal ist ein Direkteingriff besser als der (mit Verlaub!) umständlichere Weg über ein Plugin.
-
Wenn vorhanden kann man die Funktionen auch in die functions.php des Themes packen, spart ein Plugin.
- Niemals, ich würde niemals ohne zu wissen in wieweit sich jemand auskennt empfehlen in den WP-Coredateien zu arbeiten, das Risiko ist zu gross.
- Bei jedem Update muss man erneut editieren (und auch daran denken).Deshalb bin ich eher für die functions.php als 'sparsamere' ressourcenschonendere Lösung, quasi als 'Toolsammlung' die auch bei Updates bestehen bleiben kann , da WordPress aber auch von vielen Usern benutzt wird die absolut keine Ahnung von den Interna/PHP/XHTML usw. haben ist ein Plugin immernoch die einfachste Lösung.
-
- Niemals, ich würde niemals ohne zu wissen in wieweit sich jemand auskennt empfehlen in den WP-Coredateien zu arbeiten, das Risiko ist zu gross.
Gut, dann minimiere ich das Risiko. Besagte Datei enthält folgenden Code. Ich habe die entsprechenden Zeilen bereits auskommentiert.Code
Alles anzeigenfunction get_the_title( $id = 0 ) { $post = &get_post($id); $title = $post->post_title; // if ( !is_admin() ) { // if ( !empty($post->post_password) ) // $title = sprintf(__('Protected: %s'), $title); // else if ( isset($post->post_status) && 'private' == $post->post_status ) // $title = sprintf(__('Private: %s'), $title); // } return apply_filters( 'the_title', $title ); }Ich muss aber dazu sagen, dass ich mich durchaus mit dem Thema auskenne, und dass die "post-template.php" nicht die erste Datei wäre, die ich geändert habe. ;)
Ich nutze die SVN-Version von WordPress. Du kannst dir also denken, dass ich sehr häufig mit Updates zu tun habe. Mir hilft ein Shellskript, das zum einen "svn update" macht und zum anderen via diff/patch die notwendigen Änderungen einspielt. Ich muss nur Hand anlegen, wenn sich in einer Datei so viel verändert hat, dass "patch" die richtige Stelle nicht mehr findet.Ich gebe dir Recht: man sollte wissen, was man da tut. Allerdings ist die Lösung mit der "functions.php" auch nicht so sicher. Einige Themen bringen die Datei bereits mit. Bei einem Update wäre die Änderung damit auch weg. Insofern ist die Lösung mit dem Plugin sogar noch am sichersten. ;)
Aber wie gesagt, wer sich das zutraut, kann auch direkt in der WP-Datei fummeln.
-
Verstecken
Also ich mache es so und muss weder Code ändern noch PlugIns einsetzen:
Seiten mittels des Status “privat” versteckenDiese Möglichkeit macht sich den Umstand zu nutze, dass als privat markierte Seiten nicht in der Seitenauflistung (und auch so nicht) angezeigt werden und diese Eigenschaft auch auf untergeordnete Seiten übertragen wird - obwohl diese nicht auf privat gesetzt sind.
Erstelle also eine neue, leere Seite und wähle in der rechten Box Status die Eigenschaft privat.
Der Inhalt privater Seiten kann nicht eingesehen oder aufgerufen werden - außer du bist als Administrator eingeloggt. Dementsprechend werden sie auch nie aufgelistet.
Die Seiten, die nun nicht angezeigt, aber aufgerufen können werden sollen, werden als Unterseite dieser privaten Seite konfiguriert.
Bearbeite dazu einfach die bereits vorhandene Seite (oder erstelle eine neue, falls nötig) und wähle in der Box Übergeordnete Seite die auf privat gesetzte Seite. Der Status der zu versteckenden Seiten bleibt auf veröffentlicht!
Das war es schon. -
hallo pharrich, ich bin jetzt auch auf dieses problem gestoßen und hab gleich deine methode ausprobiert.. bzw wollte ich aber bei mir wird die als privat ausgezeichnete seite nicht in dem menü für übergeordnete seiten angezeigt!?
also ich hab meine seite gemacht die nur über einen selbst angelegten link im footer angezeigt werden soll, hab dann noch eine leere seite angelegt, die ich auf privat gestellt hab und wollte jetzt diese als übergeordnete seite auswählen.. geht nicht..
mach ich irgendwas falsch :confused:für hilfe wäre ich sehr dankbar:)
-
Genial !!! Die Methode von MSI klappt prima aller erste Sahne gut :-)
-
Ui kleiner Fehler: wenn ich mich auslogge, erscheinen die seiten "zerhackt" bis unkenntlich. Was nun?
-
Ok ich habs: alles zurück auf Original und von vorne...
Hier gibts die Anleitung: http://faq.wpde.org/exclude-pages/Man beachte, dass je nach Template der Eintrag "[FONT=Courier New]wp_list_pages[/FONT]" auch mehrfach in verschiedenen Dateien vorhanden sein kann. Daher sollte man die sidebar.php, header.php, index.php, footer.php und/oder functions.php des Templates nach Stellen mit "[FONT=Courier New]wp_list_pages[/FONT]" durchsuchen.
Letztlich ist die Funktion "&exclude=.. " zielführend.
Die so auskommentierten Seiten können alle auf "öffentlich" belassen werden.- Fertig
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!