{"id":969,"date":"2018-03-22T16:39:21","date_gmt":"2018-03-22T15:39:21","guid":{"rendered":"http:\/\/evileu.de\/zum-schwarzen-pinguin\/?p=969"},"modified":"2018-03-22T17:01:32","modified_gmt":"2018-03-22T16:01:32","slug":"von-joomla-nach-wordpress-umziehen-der-vollstaendigkeit-halber","status":"publish","type":"post","link":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/2018\/03\/22\/von-joomla-nach-wordpress-umziehen-der-vollstaendigkeit-halber\/","title":{"rendered":"Von Joomla nach WordPress umziehen &#8211; der Vollst\u00e4ndigkeit halber"},"content":{"rendered":"<p>Ich habe dr\u00fcben im Drupal-Blog ausf\u00fchrlich beschrieben, wie man Inhalte aus Drupal in WordPress-Beitr\u00e4ge \u00fcberf\u00fchrt, <a href=\"http:\/\/evileu.de\/000_spielwiese\/2018\/03\/21\/von-drupal-nach-wordpress-der-vollstaendigkeit-halber\/\">nachzulesen hier<\/a>. Das selbe machen wir jetzt noch mit Joomla, und zwar m\u00f6chte ich die Beitr\u00e4ge aus einer bestimmten Kategorie nach WordPress exportieren. Meine ausgew\u00e4hlte Kategorie sind nat\u00fcrlich die Rezepte, mit der Kategorie-ID 8 (im Zweifelsfall nachschlagen in der Tabelle #__categories).<\/p>\n<h2>Wie kommen wir an Titel und Inhalt der Rezepte?<\/h2>\n<p>Aus der Tabelle #__content. Die holen wir uns nach Access r\u00fcber und schauen sie mal n\u00e4her an.<\/p>\n<div id=\"attachment_970\" style=\"width: 772px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-970\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-970\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/content.jpg\" alt=\"content\" width=\"762\" height=\"473\" srcset=\"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/content.jpg 762w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/content-300x186.jpg 300w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/content-624x387.jpg 624w\" sizes=\"(max-width: 762px) 100vw, 762px\" \/><p id=\"caption-attachment-970\" class=\"wp-caption-text\">content<\/p><\/div>\n<p>Die id und den title nehmen wir mit, den alias lassen wir aus. Dann brauchen wir noch den introtext und den fulltext (beide!), weil Joomla den Beitragstext in diese beiden Felder aufteilt, sobald man einen Weiterlesen-Tag eingef\u00fcgt hat. Das sieht man hier im Screenshot oben bei den ids 4 bis 8, so sieht das dann aus.<\/p>\n<p>Den state m\u00fcssen wir filtern, -2 bedeutet &#8222;marked for deletion&#8220;, 1 ist ver\u00f6ffentlicht, wir nehmen nur die 1er. Und die catid filtern wir auch, auf die 8 f\u00fcr Rezepte. (Bei mir ist noch ein Haufen Schrott vom Testen mit drin, ich nehm mal noch die Datens\u00e4tze 9-47 raus). \u00dcbrig bleibt die folgende Tabelle:<\/p>\n<div id=\"attachment_971\" style=\"width: 878px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-971\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-971\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/content_gefiltert.jpg\" alt=\"content_gefiltert\" width=\"868\" height=\"562\" srcset=\"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/content_gefiltert.jpg 868w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/content_gefiltert-300x194.jpg 300w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/content_gefiltert-768x497.jpg 768w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/content_gefiltert-624x404.jpg 624w\" sizes=\"(max-width: 868px) 100vw, 868px\" \/><p id=\"caption-attachment-971\" class=\"wp-caption-text\">content_gefiltert<\/p><\/div>\n<p>Die specken wir noch ab, die Felder introtext und fulltext werden zu einem Feld namens bodytext zusammengef\u00fcgt, die catid und der state fliegen raus.<\/p>\n<h2>Jetzt fehlen noch die Tags f\u00fcr die Kategorien<\/h2>\n<p>Kleine Erinnerung: ich hatte die Rezeptkategorien aus WordPress auf Joomla-Tags ohne Schachtelung abgebildet. Die holen wir uns jetzt wieder zur\u00fcck, und zwar aus der Tabelle #__tags.<\/p>\n<div id=\"attachment_972\" style=\"width: 1046px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-972\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-972\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/tags.jpg\" alt=\"tags\" width=\"1036\" height=\"523\" srcset=\"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/tags.jpg 1036w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/tags-300x151.jpg 300w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/tags-768x388.jpg 768w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/tags-1024x517.jpg 1024w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/tags-624x315.jpg 624w\" sizes=\"(max-width: 1036px) 100vw, 1036px\" \/><p id=\"caption-attachment-972\" class=\"wp-caption-text\">tags<\/p><\/div>\n<p>Der erste Eintrag f\u00fcr root fliegt raus, vom Rest \u00fcbernehmen wir id und title. Parent_id ist \u00fcberall leer, weil nicht geschachtelt, published = 1 passt auch. Um jetzt die Tags den Rezepten (hier in der Tabelle id_title_bodytext) zuzuordnen, verkn\u00fcpfen wir \u00fcber die Tabelle contentitem_tag_map. Beim Importieren nach Access darauf achten, dass content_item_id und tag_id als Integer r\u00fcberkommen! Das sieht dann so aus:<\/p>\n<div id=\"attachment_973\" style=\"width: 602px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-973\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-973\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/tags_beziehungen.jpg\" alt=\"tags_beziehungen\" width=\"592\" height=\"178\" srcset=\"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/tags_beziehungen.jpg 592w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/tags_beziehungen-300x90.jpg 300w\" sizes=\"(max-width: 592px) 100vw, 592px\" \/><p id=\"caption-attachment-973\" class=\"wp-caption-text\">tags_beziehungen<\/p><\/div>\n<p>Dar\u00fcber basteln wir uns eine Abfrage, in der zun\u00e4chst mal jedes Rezept so oft vorkommt, wie es Tags zugeordnet hat:<\/p>\n<div id=\"attachment_974\" style=\"width: 688px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-974\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-974\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/abfrage_tags.jpg\" alt=\"abfrage_tags\" width=\"678\" height=\"544\" srcset=\"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/abfrage_tags.jpg 678w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/abfrage_tags-300x241.jpg 300w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/abfrage_tags-624x501.jpg 624w\" sizes=\"(max-width: 678px) 100vw, 678px\" \/><p id=\"caption-attachment-974\" class=\"wp-caption-text\">abfrage_tags<\/p><\/div>\n<p>Kurzer Blick \u00fcber die Tabelle: ich habe zu keinem Rezept mehr als 2 Tags zugeordnet, aber das passt schon, ist korrekt.<\/p>\n<h2>Zuordnen der Tags zu WordPress-Kategorien<\/h2>\n<p>Daf\u00fcr zieht man sich alle g\u00fcltigen Tags aus der #&#8211;tags ab und importiert sie als Kategorien nach WordPress, wie das geht habe ich <a href=\"http:\/\/evileu.de\/000_spielwiese\/2018\/03\/21\/von-drupal-nach-wordpress-der-vollstaendigkeit-halber\/\">in diesem<\/a> Artikel unter <strong>Schritt 1: Anlegen der Kategorien in WordPress <\/strong>im Drupal-Blog ausf\u00fchrlich beschrieben.<\/p>\n<p>Dann habe ich mir die entstandene Tabelle wp_terms nach Access r\u00fcbergeholt:<\/p>\n<div id=\"attachment_975\" style=\"width: 386px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-975\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-975\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/wp_terms.jpg\" alt=\"wp_terms\" width=\"376\" height=\"585\" srcset=\"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/wp_terms.jpg 376w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/wp_terms-193x300.jpg 193w\" sizes=\"(max-width: 376px) 100vw, 376px\" \/><p id=\"caption-attachment-975\" class=\"wp-caption-text\">wp_terms<\/p><\/div>\n<p>Hier kann ich jetzt \u00fcber den name des Terms auf den title des tags verkn\u00fcpfen, weil die Schreibweise identisch ist:<\/p>\n<div id=\"attachment_976\" style=\"width: 781px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-976\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-976\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/join_term_name.jpg\" alt=\"join_term_name\" width=\"771\" height=\"198\" srcset=\"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/join_term_name.jpg 771w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/join_term_name-300x77.jpg 300w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/join_term_name-768x197.jpg 768w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/join_term_name-624x160.jpg 624w\" sizes=\"(max-width: 771px) 100vw, 771px\" \/><p id=\"caption-attachment-976\" class=\"wp-caption-text\">join_term_name<\/p><\/div>\n<p>Damit bekomme ich die WordPress-Kategorie-IDs zu den Rezepten.<\/p>\n<div id=\"attachment_977\" style=\"width: 795px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-977\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-977\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/term_id.jpg\" alt=\"term_id\" width=\"785\" height=\"450\" srcset=\"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/term_id.jpg 785w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/term_id-300x172.jpg 300w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/term_id-768x440.jpg 768w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/term_id-624x358.jpg 624w\" sizes=\"(max-width: 785px) 100vw, 785px\" \/><p id=\"caption-attachment-977\" class=\"wp-caption-text\">term_id<\/p><\/div>\n<p>Das hatten wir so \u00e4hnlich schonmal, jedes Rezept taucht jetzt so oft auf, wie es Kategorien\/Tags hat. Jetzt Gruppieren wir noch, und nehmen den ersten und letzten Wert der Term-ID. Diese sind bei den Datens\u00e4tzen gleich, die nur eine Kategorie zugeordnet haben, das ist schon richtig so.<\/p>\n<div id=\"attachment_978\" style=\"width: 941px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-978\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-978\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/ersterwert_letzterwert.jpg\" alt=\"ersterwert_letzterwert\" width=\"931\" height=\"308\" srcset=\"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/ersterwert_letzterwert.jpg 931w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/ersterwert_letzterwert-300x99.jpg 300w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/ersterwert_letzterwert-768x254.jpg 768w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/03\/ersterwert_letzterwert-624x206.jpg 624w\" sizes=\"(max-width: 931px) 100vw, 931px\" \/><p id=\"caption-attachment-978\" class=\"wp-caption-text\">ersterwert_letzterwert<\/p><\/div>\n<p>So, das wars. Diese Tabelle kann man nach WordPress importieren, und zwar genau so wie ich es in diesem Artikel beschrieben habe:<\/p>\n<p class=\"entry-title\"><a href=\"http:\/\/evileu.de\/000_spielwiese\/2018\/03\/21\/drupal-nach-wordpress-beitraege-mit-kategorien-erzeugen\/\">DRUPAL NACH WORDPRESS: BEITR\u00c4GE MIT KATEGORIEN ERZEUGEN<\/a><\/p>\n<p>Dabei muss man wahrscheinlich noch eine kleine Abfrage einbauen, was passieren soll wenn erster und letzte Wert der term_id gleich sind, aber prinzipiell funktioniert die Sache so einwandfrei, die Beitr\u00e4ge werden in WordPress angelegt und mit Kategorien versehen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ich habe dr\u00fcben im Drupal-Blog ausf\u00fchrlich beschrieben, wie man Inhalte aus Drupal in WordPress-Beitr\u00e4ge \u00fcberf\u00fchrt, nachzulesen hier. Das selbe machen wir jetzt noch mit Joomla, und zwar m\u00f6chte ich die Beitr\u00e4ge aus einer bestimmten Kategorie nach WordPress exportieren. Meine ausgew\u00e4hlte Kategorie sind nat\u00fcrlich die Rezepte, mit der Kategorie-ID 8 (im Zweifelsfall nachschlagen in der Tabelle [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1,29,38,25,37,42,31,27,2],"tags":[],"_links":{"self":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/969"}],"collection":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/comments?post=969"}],"version-history":[{"count":3,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/969\/revisions"}],"predecessor-version":[{"id":981,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/969\/revisions\/981"}],"wp:attachment":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/media?parent=969"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/categories?post=969"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/tags?post=969"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}