migratie van MT naar WP (i)

Het begint er zowaar goed uit te zien (achter de schermen). Migratie van MT naar WP is lang niet zo gecompliceerd als men zou willen denken. Natuurlijk zijn er een paar zaken waar men rekening mee moet houden, maar zoals steeds bestaat er voor alles wel een trucje.

1: export/import

Simpel, zou u denken gebruik de ‘export‘ functie bij de MT admin interface. Bij dit log zat er echter een eerste addertje onder het gras. De entries worden gelist met hun ‘ID’, ipv de titel. Bij een export uit MT import in WP krijgen alle entries een nieuw ID, waardoor links vanop andere sites niet langer zouden werken.

De oplossing is redelijk eenvoudig (cfr WordPress Migration Notes).

Stap 1:

In uw MT installatie dient u /lib/MT/App/CMS.pm te editeren op (ongeveer) lijn 2970: daar voegt u het stukje code POSTID: <$MTEntryID$> toe:

  1. CATEGORY: <$MTCategoryLabel$>
  2. </MTEntryCategories>
  3. DATE: <$MTEntryDate format="%m/%d/%Y %I:%M:%S %p"$>
  4. POSTID: <$MTEntryID$>
  5. —--
  6. BODY:
  7. <$MTEntryBody convert_breaks="0?$>

Stap 2:

Exporteer uw entries via de MT interface.

Stap 3:

In de WP installatie editeert u /wp-admin/import-mt.php; op lijn 277 (de lijn voor default:) voegt u de volgende code toe:

  1. $post_date_gmt = get_gmt_from_date("$post_date");
  2. break;
  3. case 'POSTID':
  4. $post_id = $value;
  5. break;
  6. default:

en op (ondertussen) lijn 292 wijzigt u de code

  1. id, post_author, post_date, post_date_gmt, post_content, post_title, post_excerpt, post_status, comment_status, ping_status, post_name, post_modified, post_modified_gmt)
  2. VALUES
  3. ('$post_id', '$post_author', '$post_date', '$post_date_gmt', '$post_content', '$post_title', '$excerpt', '$post_status', '$comment_status', '$ping_status', '$post_name','$post_date', '$post_date_gmt')");

Stap 4:

Importeer uw geëxporteerd bestand, zoals in de WP codex beschreven staat.

Stap 5 (optioneel):

Zelf was ik nogal allergisch aan het systeem van de <!-- more --> toestanden, die bij het importeren tussen uw body en extended entry body wordt gestoken. Vooral op de voorpagina (index, homepage) toon ik reeds graag de volledige post.

Geen probleem: we doen een beetje van SQL. Via de phpMyAdmin interface, voeren we dit simpel SQL commando uit (opgelet dit is onomkeerbaar):

  1. UPDATE wp_posts SET post_content=(REPLACE ( post_content,'<!--more-->',''));

En voilà: uw MT weblog is een WP weblog geworden.

Volgende keer: MT naar WP: linkrot bestrijding