WordPress-Beiträge massenhaft suchen und ersetzen – Titel, Inhalte, SEO-Felder
Beim massenhaften Suchen und Ersetzen in WordPress-Beiträgen geht es meist um eine kleine Änderung, die überall vorkommt: das Datum des Vorjahres in zweihundert Rezensionen, ein umbenanntes Produkt in Titeln, ein alter Markenname in Yoast-Meta-Beschreibungen. In WOLF genügen zwei Schritte. Der Reiter Filter (Filters) findet die Beiträge, die den Text enthalten, und das Verhalten replace im Reiter Massenbearbeitung (Bulk Edit) tauscht den Text in jedem von ihnen aus. Die beiden Schritte vergleichen Text auf unterschiedliche Weise, und wer diesen Unterschied kennt, kann die Arbeit zuverlässig vorhersagen.
So funktioniert das massenhafte Suchen und Ersetzen in WOLF
Suche und Ersetzung sind getrennte Werkzeuge mit getrennten Regeln:
- Die Suche ist ein Datenbankmuster. Die Textfilter im Reiter Filter (Filters) vergleichen Ihren Text innerhalb der Datenbankabfrage mit dem gespeicherten Titel, Inhalt oder Textauszug. Dort haben einige Zeichen eine besondere Bedeutung (siehe Schritt 1).
- Das Ersetzen ist eine reine Textersetzung. Für jeden Beitrag der Operation liest WOLF den gespeicherten Wert, ersetzt jedes Vorkommen Ihres Textes Zeichen für Zeichen und speichert den Beitrag. Es gibt keine Platzhalter und keine Muster.
Welche Beiträge die Operation berührt, zeigt der Hinweis oben im Reiter Massenbearbeitung (Bulk Edit): Die Massenbearbeitung wird angewendet auf: (Bulk editing will be applied to:). Beiträge, die Sie im Beitrags-Editor per Checkbox ausgewählt haben, haben Vorrang. Ohne Auswahl werden die gefilterten Beiträge verwendet. Gibt es weder das eine noch das andere, sind es alle Beiträge des aktuellen Beitragstyps.
Filtern Sie immer zuerst, obwohl das Ersetzen nur Beiträge ändert, die den Text enthalten. Jeder Beitrag der Operation wird gespeichert, auch jene, in denen nichts gefunden wurde. Jeder von ihnen erhält ein neues Zuletzt geändert (Date modified) und einen Eintrag im Verlauf. Ein gefilterter Durchlauf berührt nur die Beiträge, die die Änderung wirklich brauchen.
Schritt 1: die Beiträge finden, die den Text enthalten
Öffnen Sie den Reiter Filter (Filters). Die Texteingaben [Beitrag] Titel ... ([post] title ...), [Beitrag] Inhalt ... ([post] content ...), [Beitrag] Textauszug ... ([post] excerpt ...) und [Beitrag] Titelform ... ([post] slug ...) haben jeweils ein Dropdown für das Verhalten neben sich:
| Verhalten | Findet Beiträge, bei denen das Feld |
|---|---|
| LIKE | den Text irgendwo enthält |
| EXACT | genau dem Text entspricht, ohne etwas darüber hinaus |
| NOT | den Text nicht enthält |
| BEGIN / END | mit dem Text beginnt oder endet |
| Leer (Empty) | leer ist |
Geben Sie den Text ein, wählen Sie LIKE und klicken Sie auf Filtern (Filter). Die Suche ignoriert die Groß- und Kleinschreibung. Prüfen Sie einige der gefundenen Beiträge, bevor Sie weitermachen.
Zeichen, die Sie aus der Suche heraushalten sollten
Technisch sind LIKE, NOT, BEGIN und END reguläre MySQL-Ausdrücke. Buchstaben, Ziffern, Leerzeichen und Bindestriche stehen für sich selbst. Diese Zeichen tun das nicht: . [ ] ( ) * + ? | $ \ { }. Ein Punkt steht für ein beliebiges Zeichen, was das Ergebnis nur ein wenig erweitert. Eckige Klammern richten mehr Schaden an: In [sc name="product-code"][/sc] machen sie aus dem Text „ein Zeichen aus dieser Liste“, sodass der Filter viel zu viele Beiträge oder gar keine liefert. Suchen Sie stattdessen einen markanten Teil ohne solche Zeichen, zum Beispiel product-code. Lassen Sie auch Apostrophe weg und suchen Sie den Teil der Wendung davor oder danach. Nichts davon gilt für Schritt 2: Das Ersetzen ist kein Muster, daher sind eckige und runde Klammern sowie Punkte dort unbedenklich.
Mehrere Wörter, AND und NOT
Ein Eingabefeld kann mehrere Bedingungen enthalten. 2019^2020 findet Beiträge, die eines der beiden Jahre enthalten. chainsaw^~2019 findet Beiträge, die beide Wörter enthalten. chainsaw^!2024 findet Beiträge mit „chainsaw“, aber ohne „2024“. Setzen Sie die Teile mit ! ans Ende. Die Dokumentation zu den Filtern und die FAQ zum gleichzeitigen Suchen mehrerer Titel enthalten weitere Beispiele.
Suchen Sie nach dem Gespeicherten, nicht nach dem Angezeigten
Der Inhaltsfilter durchsucht das HTML, das WordPress speichert. Im Block-Editor ist das, was Sie in der Ansicht Code-Editor (Code editor) sehen, einschließlich der Block-Kommentare. Ein Und-Zeichen wird meist als & gespeichert, und eine Wendung mit fettem Text in der Mitte (buy <strong>now</strong>) ist nicht der reine Text „buy now“. Dasselbe gilt für Shortcodes. Die Titel- und Inhaltszellen des Beitrags-Editors zeigen den gespeicherten Text mit Shortcodes als Rohtext, weil WOLF Werte zum Bearbeiten anzeigt und sie nie rendert. Genau dieser Rohtext ist es, auf dem Suche und Ersetzung arbeiten.
Schritt 2: den Text im Reiter „Massenbearbeitung“ ersetzen
- Öffnen Sie den Reiter Massenbearbeitung (Bulk Edit) und lesen Sie den Hinweis oben. Er sollte the filtered [post] nennen oder die Zahl der ausgewählten Beiträge.
- Haken Sie die Checkbox des Feldes an, das Sie ändern möchten: Titel (title), Inhalt (content), Textauszug (excerpt) oder ein anderes Textfeld. Die Eingaben des Feldes werden aktiv.
- Setzen Sie sein Verhalten-Dropdown auf replace. Eine zweite Zeile erscheint.
- Geben Sie in der ersten Eingabe den zu suchenden Text ein, genau so, wie er gespeichert ist.
- Wählen Sie in der zweiten Zeile Groß-/Kleinschreibung beachten (same case) oder Groß-/Kleinschreibung ignorieren (ignore case) und geben Sie den neuen Text bei Ersetzen durch (replace to text) ein. Lassen Sie das Feld leer, um den gefundenen Text zu löschen.
- Klicken Sie auf Massenbearbeitung durchführen (Do Bulk Edit) und bestätigen Sie den Dialog, der die zu bearbeitenden Felder auflistet.
Groß-/Kleinschreibung beachten (same case) ersetzt nur exakte Treffer, sodass „Chainsaw“ unberührt bleibt, wenn Sie nach „chainsaw“ suchen. Groß-/Kleinschreibung ignorieren (ignore case) ersetzt beide. Sie können mehrere Felder in einem Durchlauf ändern: Haken Sie Inhalt und Textauszug an, jeweils mit eigenem Such- und Ersetzungstext.
Die Dropdowns variable fügen {TITLE}, {ID} und {MENU_ORDER} an der Cursorposition ein und funktionieren in beiden Eingaben. WOLF setzt sie für jeden Beitrag ein. Ersetzen Sie zum Beispiel „Read the full review“ durch „Read the full review of {TITLE}“, wird in jedem Beitrag der eigene Titel genannt.
| Aufgabe | Feld | Zu suchender Text | Ersetzen durch |
|---|---|---|---|
| Eine Jahreszahl in Artikeln aktualisieren | Inhalt | to buy in 2024 | to buy in 2026 |
| Ein Produkt in Titeln umbenennen | Titel | Model X200 | Model X300 |
| Eine Zeile aus jedem Textauszug löschen | Textauszug | Updated weekly. | (leer) |
Machen Sie den zu suchenden Text so spezifisch wie möglich. „2024“ allein würde auch Preise, Modellnummern und Links ändern, die zufällig diese Ziffern enthalten. Da das Ersetzen wörtlich erfolgt, kann es keinen Wert behandeln, der sich von Beitrag zu Beitrag ändert, etwa eine andere Bild-ID in jedem Shortcode. Jede unterschiedliche Zeichenkette braucht einen eigenen Durchlauf.
Text in Yoast-SEO-Titeln und Meta-Beschreibungen ersetzen
SEO-Plugins speichern den individuellen SEO-Titel und die Beschreibung jedes Beitrags in den Post-Metadaten. Yoast SEO verwendet dafür die Schlüssel _yoast_wpseo_title und _yoast_wpseo_metadesc. Um darin zu suchen und zu ersetzen, machen Sie sie zunächst zu WOLF-Spalten:
- Fügen Sie im Reiter Metafelder (Meta Fields) beide Schlüssel mit Eigenen Schlüssel manuell hinzufügen (Add Custom key by hands) hinzu. Sie können auch die ID eines Beitrags mit individuellem SEO-Titel unter Meta-Schlüssel eines beliebigen Beitrags per ID abrufen (Get meta keys from any post by its ID) eingeben und die benötigten Schlüssel behalten. Geben Sie ihnen lesbare Titel wie „SEO-Titel“, setzen Sie den Typ auf string und klicken Sie auf Metafelder speichern (Save meta fields).
- Aktivieren Sie im Reiter Einstellungen (Settings) die beiden neuen Spalten und klicken Sie auf Alle Einstellungen speichern (Save all settings). Nur aktive Spalten erscheinen in den Reitern „Filter“ und „Massenbearbeitung“.
- Filtern Sie mit dem neuen Meta-Textfilter und führen Sie im Reiter Massenbearbeitung (Bulk Edit) replace auf dem Metafeld aus, genau wie oben.
Die Meta-Textfilter arbeiten anders als die Titel- und Inhaltsfilter: Ihr LIKE ist ein schlichtes „enthält“, daher sind eckige Klammern und Punkte dort unbedenklich. Mehr dazu unter Beiträge nach benutzerdefiniertem Feld filtern.
Yoast speichert einen Wert nur, wenn jemand für diesen Beitrag einen eigenen Titel oder eine eigene Beschreibung eingegeben hat. Alle anderen Beiträge beziehen ihre aus den Vorlagen in Yoasts eigenen Einstellungen, die Variablen wie %%title%% und %%sitename%% verwenden. Bei diesen Beiträgen gibt es im Metafeld nichts zu finden. Ändern Sie dann die Vorlage in Yoast. Andere SEO-Plugins verwenden eigene Schlüssel: Finden Sie sie mit Meta-Schlüssel eines beliebigen Beitrags per ID abrufen (Get meta keys from any post by its ID) bei einem Beitrag, für den Sie einen eigenen SEO-Titel gesetzt haben.
Beispiel: „(copy)“ aus den Titeln duplizierter Beiträge entfernen
Die Schaltfläche Duplizieren (Duplicate) des Beitrags-Editors gibt jeder Kopie den Originaltitel gefolgt von „ (copy)“, übersetzt, wenn Ihr Admin-Bereich in einer anderen Sprache läuft. Es gibt keine Einstellung, die das Suffix abschaltet, aber ein einziges Ersetzen entfernt es bei allen Kopien:
- Filtern Sie im Reiter Filter (Filters) den Titel mit LIKE und dem Text
copy. Geben Sie nicht(copy)ein, denn Klammern sind Musterzeichen. Um ältere Titel wie „Copywriting basics“ auszuschließen, setzen Sie außerdem Nach Autor (By author) auf sich selbst und Veröffentlichungsdatum von (Date Published from) auf den Tag des Duplizierens. Kopien gehören dem Benutzer, der sie erstellt hat, und tragen das Datum dieses Moments. - Aktivieren Sie im Reiter Massenbearbeitung (Bulk Edit) Titel (title), wählen Sie replace, geben Sie
(copy)mit dem führenden Leerzeichen ein, wählen Sie Groß-/Kleinschreibung beachten (same case) und lassen Sie Ersetzen durch (replace to text) leer. - Klicken Sie auf Massenbearbeitung durchführen (Do Bulk Edit).
Kopien werden als veröffentlichte Beiträge angelegt. Sollen sie noch nicht öffentlich sein, setzen Sie Beitragsstatus (post status) im selben Durchlauf der Massenbearbeitung auf Entwurf. Ihre Titelformen (Slugs) wurden aus dem Titel samt Suffix erzeugt, zum Beispiel summer-sale-copy, und eine Titeländerung ändert den Slug eines veröffentlichten Beitrags nicht. Führen Sie ein Ersetzen im Feld Titelform (slug) aus oder erzeugen Sie die Slugs neu, wie unter Titel in die Titelform kopieren beschrieben. WordPress hält Slugs eindeutig, aus einer Kopie von summer-sale wird daher summer-sale-2.
Testen, prüfen und rückgängig machen
- Testen Sie zuerst an zwei oder drei Beiträgen. Wählen Sie sie per Checkbox aus (die Auswahl hat Vorrang vor dem Filter), führen Sie das Ersetzen aus und sehen Sie sich diese Beiträge auf der Website an. Heben Sie dann die Auswahl auf und führen Sie es für die gesamte gefilterte Menge aus.
- Aus dem Verlauf rückgängig machen. Jeder Massendurchlauf wird im Reiter Verlauf (History) aufgezeichnet und kann als Ganzes oder Beitrag für Beitrag zurückgesetzt werden. Der Verlauf erfasst Änderungen, keine Löschungen.
- Leeren Sie die Seiten-Caches nach dem Durchlauf, wenn die Website noch den alten Text zeigt.
- Der Filter hat die Beiträge gefunden, aber nichts hat sich geändert: Vergleichen Sie Ihren Suchtext Zeichen für Zeichen mit der Zelle im Beitrags-Editor. Der übliche Unterschied ist ein Leerzeichen, eine HTML-Entität, ein Zeilenumbruch oder ein Großbuchstabe, während Groß-/Kleinschreibung beachten (same case) gewählt ist.
- Der Filter findet fast alles: Der Suchtext enthält ein Musterzeichen wie
[oder(. Suchen Sie einen kürzeren, einfachen Teil.
Die Dokumentation zum Reiter „Massenbearbeitung“ beschreibt die übrigen Textverhalten (append, prepend, new). Tut ein Ersetzen trotzdem nicht, was Sie erwarten, posten Sie das Feld, den zu suchenden Text und einen Beispielbeitrag im WOLF-Supportforum.