Text in Post mit anderem Text ersetzen

  • Guten Morgen,

    ich schreibe gerade ein Plugin das eine Funktion anbietet um von einem Plugin auf das neue Umzusteigen.

    Dafür würde ich gerne ein Tag, das vermutlich in vielen Posts vorkommt, durch ein anderes Tag ersetzen, ohne das jeder Beitrag geöffnet und geändert werden muss.

    Kann ich das per SQL in der Datenbank erledigten?
    Wie müsste die SQL Syntax (ungefähr) ausschauen um das zu erreichen?

    Gruß
    Andreas

    • 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)

    Mehr erfahren

  • Was für ein "Tag"? Ein Tag im WP-Sinn? Dann wirst du in der Tabelle wp_terms fündig. Dort einfach den alten Tag-Namen mit dem neuen ersetzen. Geht mit PHPMyAdmin recht bequem. Das liefert dir dann auch die SQL-Syntax für die Änderung.

    Nachtrag: Die SQL-Syntax würde wie folgt lauten:

    SQL
    UPDATE wp_terms
    SET name = $neuerTagName
    WHERE name = $alterTagName


    Beachte dass die Tabelle nicht immer den Namen "wp_terms" haben muss, verwende dazu die WPDB-API.

  • so hab´s gefunden. Habs gleich bei mir eingebaut und funktioniert super.

    Code
    $query = "UPDATE $wpdb->posts ";
       $query .= "SET post_content = ";
       $query .= "REPLACE(post_content, \"$search_text\", \"$replace_text\") ";
       $wpdb->get_results($query);



    Das mit der Anzeige wenn das Plugin nicht aktiv ist, ist mir bewusst. Aber es geht ja nicht anders, oder?

    Da kommt mir gerade noch eine Idee für das Plugin. Es könnte ja auf Wunsch auch die Tags ganz löschen, wenn sie nicht mehr gebraucht werden.

  • Das mit der Anzeige wenn das Plugin nicht aktiv ist, ist mir bewusst. Aber es geht ja nicht anders, oder?


    Klar, in der HTML-Kommentar-Schreibweise. Dann wirds zwar gespeichert und an den Browser ausgeliefert, aber nicht auf der Seite ausgegeben.

    Zitat

    Da kommt mir gerade noch eine Idee für das Plugin. Es könnte ja auf Wunsch auch die Tags ganz löschen, wenn sie nicht mehr gebraucht werden.


    Könntest du auch machen. Funktioniert halt nur wenn das Plugin über das Backend deaktiviert wird (gibts dafür überhaupt nen Hook?). Wenn man das Plugin einfach vom Server löscht (z.B. weil man aus irgendeinem Grund nicht mehr ins Backend kommt), dann bleiben die "Leichen" in der Datenbank.

    Die HTML-Kommentarlösung ist IMHO die einfachste Lösung.

  • das mit dem HMTL Kommentar finde ich gut, der praktische Nutzen des <!--hideit--> war mir bisher dato nicht bewusst. Danke für den Hinweis

    Zitat

    (gibts dafür überhaupt nen Hook?).



    Keine Ahnung, bin ganz neu in der Materie.

  • So genau hab ich mir das jetzt nicht angeguckt. Aber ganz so einfach wie bei der Aktivierung wird's sicher nicht sein... Andere Pluginautoren bieten manchmal auch ein spezielles "Clean-Up"-Plugin für ihre Plugins an, welches man ausführen kann, nachdem man das ursprüngliche Plugin deaktiviert hat und das dann die DB von Datenleichen befreit.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!