WordPress-HowTo: Umwandeln von Seiten in Artikel

Beim Updateprozess von WordPress 2.3.3 auf 2.6.2 zeigte sich bei einem Blog folgendes: Ich hatte dies vor weit über einem Jahr als proof-of-concept für die Nutzung von WordPress als Content Management System angelegt. Das heißt: Fast alle Inhalte bestanden aus Seiten (Pages), während Artikel (Posts) kaum zum Einsatz kamen. Nun zeigte sich, dass dies einige Nachteile mit sich brachte:

Beim Umstieg vom bisherigen Tagging-Widget auf das bei WordPress integrierte Widget wurden nur noch die Tags der drei oder vier Artikel angezeigt. Die Tags der Seiten waren allerdings wesentlich wichtiger. Auch sonst gab es zahlreiche Dinge, die mich störten. Auch wenn WordPress sich immer mehr von einem reinen Blog-System in Richtung Content Management System entwickelt, gibt es hier doch noch einige offene Baustellen. Und ich mochte nicht mehr auf einige Plugins angewiesen sein, um dieses Manko auszubügeln.

Damit war klar: Die derzeit optimale Lösung würde darin bestehen, alle Seiten in Artikel umzuwandeln. Eine Neuanlage war indiskutabel: Zu viel Arbeit, alle Kommentare etc. würden verloren gehen. In WordPress selbst fand ich keine Lösung dazu – ähnlich wie bei Joomla 1.0.x, wo static pages einfach nicht in Content umgewandelt werden können, der zu Categories oder Sections gehören konnte. Ein Umstand, der mit Version 1.5 glücklicherweise behoben wurde. WordPress bietet diese Flexibilität scheinbar noch nicht.

Ein Blick in die Datenbankstruktur zeigte mir, dass WordPress hier aber mittlerweile schon den Weg bereitet hat. Der einzige Unterschied zwischen den beiden Posting-Varianten besteht in der Definition des post_type. Früher waren die Unterschiede wohl gravierender, wie sich in einem mittlerweile nicht mehr ganz passenden Kommentar-Tipp im Netz fand.

Also schrieb ich kurz ein MySQL-Snippet, dass ich in PHPMyAdmin eingab:

UPDATE `wp_posts`
SET `post_type` = REPLACE(`post_type`, ‚page‘,’post‘)
WHERE `post_type` LIKE ‚%page%‘

Das war’s dann schon. Nun musste ich nur noch hingehen und bei den wenigen Seiten, die Seiten bleiben sollte, dies wieder ändern.

Allerdings waren die neuen Artikel nun der Standard-Kategorie zugeordnet. Also im Adminbereich noch neue Kategorien angelegt und die Seiten von Hand dort einsortiert. Dabei zeigte sich, dass durch die Arbeit in der Datenbank bereits Google angepingt worden war und die ersten Artikel bereits mit der Standard-Kategorie-URl im Index hatte. Unglaublich und nicht ganz gewünscht. Also die sitemap.xml aktualisiert, damit Google die neuen URLs zügig kennen lernt.

Kurz und gut: Arbeit von knapp einer Stunde und alles läuft jetzt wie gewünscht.

Kommentar (1) Schreibe einen Kommentar

  1. Respekt!

    Wirklich eine super Lösung und meine Rettung sonst hätte ich 900 Seiten umkopieren müssen.

    Vielen dank Gruß Mika

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.