ChatGPT WordPress Code bereinigen (DIV und SPAN entfernen)

  • Hallo zusammen,

    ich wollte eine Lösung teilen, wo ich an Probleme gestoßen bin mit ChatGPT. Ich hatte das Problem, dass viele meiner WordPress-Beiträge überflüssige <div> und <span> Tags enthalten haben, die das Layout und die Lesbarkeit meiner Seite beeinträchtigten. Ich habe ein kleines PHP Script, das diese Tags aus den Beiträgen entfernt. Hier ist, wie ich es gemacht habe:

    Schritt-für-Schritt-Anleitung:

    1. Erstellen einer PHP-Datei: Erstelle eine PHP-Datei zB. irgendwas.php im Root-Verzeichnis deiner WordPress-Installation. (Muss im Root liegen, da auf WordPress Dateien zugegriffen wird)
    2. Skript einfügen: Füge das folgende Skript in die Datei ein:

    <?php
    // Lade WordPress-Umgebung
    require_once('wp-load.php');

    // Funktion zum Entfernen der <div> und <span> Tags
    function remove_div_and_span_tags($content) {
       $content = preg_replace('/<div[^>]*>/', '', $content);
       $content = preg_replace('/<span[^>]*>/', '', $content);
       $content = preg_replace('/<\/div>/', '', $content);
       $content = preg_replace('/<\/span>/', '', $content);
       return $content;
    }

    // Fortschritt speichern
    function save_progress($offset) {
       file_put_contents('progress.txt', $offset);
    }

    // Fortschritt laden
    function load_progress() {
       if (file_exists('progress.txt')) {
           return (int)file_get_contents('progress.txt');
       }
       return 0;
    }

    // Setze die maximale Anzahl der Posts pro Abfrage
    $posts_per_page = 10;
    $offset = load_progress();

    // Sicherstellen, dass die Ausgabe nicht gepuffert wird
    if (function_exists('apache_setenv')) {
       apache_setenv('no-gzip', '1');
    }
    ini_set('output_buffering', 'off');
    ini_set('zlib.output_compression', false);
    while (ob_get_level()) {
       ob_end_flush();
    }
    ob_implicit_flush(1);

    // Schleife durch alle Posts
    while (true) {
       $args = array(
           'posts_per_page' => $posts_per_page,
           'offset'         => $offset,
           'post_status'    => 'publish',
       );
       $posts = new WP_Query($args);

       if (!$posts->have_posts()) {
           break;
       }

       while ($posts->have_posts()) {
           $posts->the_post();
           $post_id = get_the_ID();
           $post_content = get_the_content();

           $modified_content = remove_div_and_span_tags($post_content);

           wp_update_post(array(
               'ID'           => $post_id,
               'post_content' => $modified_content,
           ));

           echo "Die <div> und <span> Tags wurden erfolgreich aus dem Beitrag mit der ID $post_id entfernt.<br>";
           flush();
       }

       $offset += $posts_per_page;
       save_progress($offset);

       gc_collect_cycles();
       wp_cache_flush();

    //nur bei lahmen Servern auskommentieren   sleep(2);
    }

    wp_reset_postdata();
    echo "Alle Beiträge wurden bearbeitet.";
    ?>

    Ausführen des Skripts: Öffne deinen Browser und rufe das Skript auf, z.B. https://beispiel.rocks/irgendwas.php.

    Überwachung des Fortschritts: Das Skript zeigt den Fortschritt an und entfernt die <div> und <span> Tags aus allen veröffentlichten Beiträgen. Falls das Skript aufgrund eines Timeouts abbricht, kannst du es einfach erneut aufrufen, und es wird an der letzten Stelle fortgesetzt.

    Hinweis:

    • Stelle sicher, dass du ein Backup deiner Datenbank machst, bevor du das Skript ausführst.
    • Dieses Skript funktioniert nur für veröffentlichte Beiträge. Du kannst die Abfrageparameter anpassen, um auch Entwürfe oder andere Post-Status einzuschließen.

    Ich hoffe, das hilft einigen von euch, die auf ähnliche Probleme stoßen.

    wenn etwas möglich erscheint mach ich das, wenn das nicht klappt gehts ans unmögliche und ansonsten das undenkbare.

    - nun stolz rauchfrei - Ich denke also Bing ich!

    Support 24h Bereitschaft 0173 6107465 - NUR Für Kunden von SEO NW!