Nicht-CMS-Blog zu WordPress migrieren

Pfandfinder

Lieutenant
Registriert
Nov. 2020
Beiträge
619
hallo,

ich betreibe seit einigen Jahren einen kleinen Blog ohne CMS, nur rein aus HTML, CSS, PHP, ich habe so ein Template gekauft und alles drumherum selbst gebastelt. Die Blogbeiträge sind in einer Mysql-Datenbank. Da Google Adsense jetzt ab 2024 einen verifizierten Content-Banner verlangt, muss ich also nun endlich einmal zu einem CMS wechseln, am besten WordPress.

Die ganzen Beiträge werde ich schon irgendwie migrieren können in die "wp_posts"-Tabelle mit dem Aufbau von WP. Mein größtes Problem ist eher wie ich die bereits bestehenden Links gültig behalte. derzeit sieht ein Blog-Link so aus:

meinblog.tld/123-wie-backe-ich-kaesekuchen

123 ist der Primary-Key der "beitraege"-Tabelle. dahinter folgt der Titel des Beitrags in Kleinbuchstaben, Bindestriche statt Leerzeichen, etc. Das wird mit PHP so umgesetzt:

PHP:
$link = $beitraege['id'].'-'.strtolower(str_replace('--', '-', preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', str_replace('&', 'und', str_replace('&', 'and', str_replace(' / ', '-', str_replace('.', '-', str_replace(' – ', '-', str_replace(' - ', '-', str_replace('+', 'plus', str_replace('ß', 'ss', str_replace('ä', 'ae', str_replace('ü', 'ue', str_replace('ö', 'oe', str_replace('Ä', 'ae', str_replace('Ü', 'ue', str_replace('Ö', 'oe', $beitraege['title']))))))))))))))))));

den PK werde ich von "wp_posts" nicht verwenden können, denn jede Revision hat hier drinnen ja einen eigenen Eintrag. Siehe Screenshot, nach einigen Änderungen von Beitrag 1 hat Beitrag Nr. 2 jetzt die ID 8. Ich würde ja dann gerne eine Weiterleitung von den alten Links zu den neuen bauen, doch wenn ich das gleiche Schema beibehalte wird das ja nicht funktionieren da diese IDs zu Beiträgen passen.

Hat jemand Tipps oder Ideen wie ich das am besten umsetze ?
 

Anhänge

  • 20231119-113836.png
    20231119-113836.png
    12,1 KB · Aufrufe: 46
Von wie vielen Posts reden wirds?
Praktikabel für bestehende Posts mit ID: %post_name% nutzen und mit der alten URL manuell ersetzen. Das ist eine schnelle manuelle Lösung für so unter 100 Posts.

Hilft aber nix für neue Posts, daher erweitert um:
URLs nachbauen (wie beschrieben), danach Redirection plugin installieren und die manuell eingefügten IDs entfernen. Damit wären automatisch Redirects eingebaut und die neue Struktur kann jetzt beliebig gewählt werden - mit oder ohne IDs bzw. völlig was anderes, egal.
 
Zuletzt bearbeitet:
Ansonsten kannst du jetzige Tabelle in CSV oder Excel exportieren.

Und mit WPAllImportPro importieren. Dort kannst du dann jede Spalte einem Feld zuordnen.

Das spannende daran du kannst für jede Spalte optional eine eigene PHP funktion für den Import schreiben und so den Wert manipulieren wie du ihn brauchst.

Oder du machst wie bereits erwähnt Redirects.
 
Nur %post_name% zu verwenden wird tatsächlich das beste sein, da ja die IDs mit Wordpress sowieso nicht immer fortlaufende Beiträge sind.

wenn ich in WP /p=<id> aufrufe, werde ich auch direkt weitergeleitet zum entsprechenden Beitrag, also /wie-backe-ich-kaesekuchen. das würde schon einmal klappen. Ich habe die Beiträge schon einmal migriert bekommen. Diese p-ID bei Wordpress ist sogar identisch mit der alten ID, das ist schonmal super.

hab das mit dieser htaccess gelöst :

Code:
RewriteEngine On
RewriteRule ^([0-9]+)$ /?p=$1 [L,R=301]
RewriteRule ^([0-9]+)-(.*)$ /?p=$1 [L,R=301]
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: M4ttX
Zurück
Oben