Come effettuare la migrazione di un blog statico in WordPress

Come effettuare la migrazione di un blog statico in WordPress

La migrazione di un blog statico in WordPress può essere un'operazione relativamente semplice o estremamente complessa a seconda della preparazione preliminare che si svolge sul sito di partenza e della conoscenza stessa delle funzionalità di WordPress. Vediamo insieme come procedere.

Nel caso dei siti statici siamo vincolati al numero di pagine esistenti: se sono poche possiamo semplicemente importarne i contenuti manualmente nell'editor di WordPress, ma se il loro numero è elevato dobbiamo creare uno script che automatizzi il processo di reperimento dei dati che ci interessano, ossia:

  • titolo del post o della pagina
  • contenuto del post o della pagina
  • categoria del post o della pagina

Come fare?

  1. effettuate una scansione delle directory del sito alla ricerca dei file HTML in essa presenti usando questo tutorial:

    List files and directories with PHP

  2. una volta ottenuti i file HTML, di cui vi consiglio di studiarne prima la struttura, dovete estrarne il titolo, il contenuto e la categoria. Potete utilizzare l'estensione DOM di PHP, stando attenti a sopprimere gli errori in caso di marcatura non ben formata ( consultate questa pagina utilizzando libxml_use_internal_errors ).
  3. per quanto riguarda il titolo del post potete usare l'elemento title, mentre per il contenuto dovete conoscere quale elemento lo racchiude (ad esempio <div id="content"></div>); per la categoria il discorso è più complesso: se non è specificata nel codice HTML, potete ricavarla dal percorso del file. Ad esempio se il percorso è sito.it/articoli/news/ la categoria sarà "news", ossia il nome della directory.

Esempio:

function get_inner_html( $node ) { 
  $innerHTML= ''; 
  $children = $node->childNodes; 
  foreach ( $children as $child ) { 
     $innerHTML .= $child->ownerDocument->saveXML( $child ); 
  } 
  return $innerHTML; 
} 
foreach( $files as $file ) {
  $html = file_get_contents( $file );
  $dom = new DOMDocument();
  $dom->loadHTML( $file );
  $title = $dom->getElementsByTagName( 'title' )->item( 0 )->firstChild->nodeValue;
  $content_element = $dom->getElementById( 'content' );
  $content = get_inner_html( $content_element );
}

Potete ora popolare un array associativo e salvare i dati come file JSON, file che poi userete in WordPress con la funzione wp_insert_post(). Vi consiglio di creare prima le categorie dei post e di salvarne i dati in un array associativo che userete durante il processo di inserimento dei post.

Torna su