Sie nutzen Custom Post Types in Ihrem WordPress-Theme und möchten dieses nun wechseln, ohne Ihre Inhalte zu verlieren? Dieser Beitrag erklärt, wie das funktioniert und welche Hilfsmittel Ihnen dafür zur Verfügung stehen.
Inhalt
Worum geht es?
Was genau Custom Post Types sind und wo sie zum Einsatz kommen, haben wir bereits in einem älteren Beitrag ausführlich beschrieben. Hier noch mal in aller Kürze: Custom Post Types sind Inhaltstypen, die über die beiden Standard-Post-Types von WordPress – Beiträge und Seiten – hinausreichen. Beispiele hierfür sind Termine und Referenzen.
Zum Teil sind Custom Post Types bereits fester Bestandteil von Themes, zum Teil werden sie von Nutzern ihren Bedürfnissen entsprechend selbst angelegt. Wenn Sie Custom Post Types nutzen und Ihr Theme wechseln möchten, sollten Sie wissen, wie Sie Ihre Custom Post Types im Anschluss wiederherstellen können.
Dabei geht es in erster Linie um die Wiederherstellung des Zugangs zu den Inhalten, die Sie mithilfe der Custom Post Types erstellt haben. Die Inhalte an sich werden bei einem Theme-Wechsel nicht gelöscht.
Möchten Sie mit Ihrer WordPress-Website zu einem anderen Ort auf Ihrem Server oder einem ganz neuen umziehen, müssen Sie Ihre Daten zunächst dorthin transferieren. Wie das geht, erklären wir am Ende dieses Beitrags.
Custom Post Types manuell im Code wiederherstellen
Um Ihre Custom Post Types durch das Kopieren der entsprechenden Codes wiederherzustellen, müssen Sie zunächst herausfinden, in welcher Quelldatei Ihres alten Themes die Codes hinterlegt sind. Häufig, aber nicht zwangsläufig, ist das die functions.php.
Auf diese können Sie beispielsweise zugreifen, indem Sie in der linken Navigationsspalte Ihres WordPress-Backends den Menüpunkt „Design“ und dann den Untermenüpunkt „Theme-Editor“ auswählen. Die functions.php finden Sie dann wiederum in der Dateiauswahl am rechten Bildschirmrand.
Öffnen Sie die Datei und suchen Sie darin nach „register_post_type“. Was direkt hinter dieser Phrase steht, gibt Aufschluss über die konkrete Bezeichnung des jeweiligen Custom Post Type. Als Beispiel könnte Ihnen dort so etwas wie „register_post_type( ‚termine‘, $args );“ begegnen. Haben Sie den gewünschten Code gefunden, können Sie ihn kopieren und in die functions.php Ihres neuen Themes einfügen.
In Gänze sieht der Code etwa wie folgt aus:
function cptui_register_my_cpts_termine() {
/**
* Post Type: Termine.
*/
$labels = [
„name“ => __( „Termine“, „twentytwenty“ ),
„singular_name“ => __( „Termin“, „twentytwenty“ ),
];
$args = [
„label“ => __( „Termine“, „twentytwenty“ ),
„labels“ => $labels,
„description“ => „“,
„public“ => true,
„publicly_queryable“ => true,
„show_ui“ => true,
„delete_with_user“ => false,
„show_in_rest“ => true,
„rest_base“ => „“,
„rest_controller_class“ => „WP_REST_Posts_Controller“,
„has_archive“ => false,
„show_in_menu“ => true,
„show_in_nav_menus“ => true,
„delete_with_user“ => false,
„exclude_from_search“ => false,
„capability_type“ => „post“,
„map_meta_cap“ => true,
„hierarchical“ => false,
„rewrite“ => [ „slug“ => „termine“, „with_front“ => true ],
„query_var“ => true,
„supports“ => [ „title“, „editor“, „thumbnail“ ],
];
register_post_type( „termine“, $args );
}
add_action( ‚init‘, ‚cptui_register_my_cpts_termine‘ );
Manchmal sind die Codes für Custom Post Types jedoch in anderen Theme-Dateien hinterlegt, die sie anhand der functions.php ausfindig machen können. Suchen Sie dazu nach „include“ und halten Sie Ausschau nach Zeilen, die etwa wie folgt aussehen:
include(get_template_directory().“/includes/termine.php;
Diese Zeile besagt, dass die Datei termine.php ebenfalls wichtige Theme-Funktionen beinhaltet. Auch diese Datei können Sie dann mithilfe des Theme-Editors durchsuchen, um den Code für einen Custom Post Type herauszufinden.
Noch einfacher ist die Suche natürlich, wenn Sie die Möglichkeit haben, über die verschiedenen Theme-Dateien hinweg nach den Codes der Custom Post Types zu suchen – beispielsweise mithilfe eines Programms, das Ihnen den direkten Zugriff auf Ihren Server gewährt. Dieser Weg ist allerdings nur für Profis sinnvoll.
Custom Post Types mithilfe von Plug-ins wiederherstellen
Das wahrscheinlich bekannteste Plug-in zum Anlegen von Custom Post Types und den dazugehörigen Taxonomien, also den Kategorien zur Organisation der Inhalte, ist Custom Post Type UI von WebDevStudios. Um Ihre alten Custom Post Types damit wiederherzustellen, müssen Sie zunächst deren konkrete Bezeichnungen in Ihrer WordPress-Datenbank kennen.
Diese können Sie über den bereits oben aufgeführten Weg der Suche im Code herausfinden (Beispiel: termine) oder anhand der URL, die Sie beim Aufruf eines Custom Post Type oder einer Taxonomie in Ihrem WordPress-Administrationsbereich sehen.
In der Benutzeroberfläche von Custom Post Type UI können Sie diese dann mithilfe der Funktionen „Inhaltstypen hinzufügen/bearbeiten“ und „Taxonomien hinzufügen/bearbeiten“ wiederherstellen.
Für Profis: Möchten Sie das Plug-in im Anschluss an die Wiederherstellung Ihrer Custom Post Types und Taxonomien wieder löschen, um beispielsweise Ressourcen zu sparen, können Sie unter dem Menüpunkt „Werkzeuge“ und dem Reiter „Code erhalten“ die entsprechenden Codes kopieren und wie oben beschrieben in Ihre functions.php einfügen. Danach ist es nicht länger notwendig, das Plug-in installiert zu haben.
Custom Post Types konvertieren
Nun haben Sie Ihre gewünschten Custom Post Types und damit den Zugang zu den darüber eingefügten Website-Inhalten im neuen Theme wiederhergestellt. Mit großer Wahrscheinlichkeit sehen diese im Frontend aber nicht mehr so aus wie im alten Theme. Der Grund: Das ursprüngliche Styling der Custom Post Types wird nicht übernommen, sondern vom neuen Theme geregelt.
Jetzt können Sie natürlich Hand anlegen beziehungsweise anlegen lassen, um den Look der Custom Post Types im neuen Theme Ihren Vorstellungen anzupassen. Alternativ haben Sie die Möglichkeit, Ihre Custom Post Types in Inhaltstypen umzuwandeln, die von Ihrem neuen Theme bereits genutzt werden. Das geht beispielsweise mithilfe des Plug-ins Convert Post Types von Stephanie Leary.
Custom Post Types bereinigen
Sollten Sie bestimmte Custom Post Types nicht länger nutzen wollen, empfehlen wir, diese zu bereinigen. Ansonsten bleiben die dazugehörigen Inhalte in Ihrer WordPress-Datenbank gespeichert. Zur selektiven Bereinigung von Custom Post Types steht beispielsweise das Plug-in Custom Post Type Cleanup von keesiemeijer zur Verfügung.
WordPress-Daten exportieren/importieren
Daten aus einer WordPress-Installation zu exportieren und in eine andere zu importieren, ist denkbar einfach und mit Hausmitteln des Content-Management-Systems möglich. Die dazugehörigen Funktionen finden Sie, wenn Sie in der linken Navigationsspalte Ihres Backends den Menüpunkt „Werkzeuge“ und dann den Untermenüpunkt „Daten exportieren“ beziehungsweise „Daten importieren“ ansteuern.
Dabei können Sie aus allen Inhaltstypen wählen, welche Sie exportieren möchten. Daraufhin wird eine XML-Datei erstellt, die Sie zunächst herunterladen und dann in der neuen WordPress-Installation importieren müssen. Dazu wählen Sie unter „Daten importieren“ die Option „WordPress“ aus, woraufhin Sie durch die dafür notwendige Installation des Plug-ins WordPress Importer geleitet werden.
Tipp: Wenn Sie in Ihrem alten Theme Custom Post Types und Taxonomien mithilfe von Custom Post Type UI angelegt haben, können Sie im neuen Theme die „Import/Export“-Funktion des Plug-ins verwenden, um die Daten zu Ihrer neuen WordPress-Installation zu transferieren.
Viel Erfolg!