Trasformare un sito WordPress in un sito statico

Trasformare un sito WordPress in un sito statico

Trasformare un sito WordPress dinamico in un sito statico richiede la creazione di directory e file HTML. Questa soluzione si usa raramente.

Per effettuare l'operazione con successo vi consiglio di operare su una copia locale del sito in modo da poter aumentare le risorse a disposizione di PHP. In questo esempio utilizzo una classe wrapper per la connessione al database MySQL, ma voi potete anche non usare questa soluzione ed utilizzare un metodo più diretto:


require_once( 'DB.php' );
$db = new DB( 'localhost', 'database', 'password', 'username' );
$query = "SELECT * FROM wp_posts WHERE post_type = 'post' and post_status = 'publish' ORDER BY ID DESC";
$results = $db->getResults( $query );

$path = $_SERVER['DOCUMENT_ROOT'] . '/blog/'; // Ad esempio localhost/blog

foreach( $results as $result ) {
	$title = $result['post_title'];
	$content = $result['post_content'];
	$excerpt = strip_tags( $result['post_excerpt'] );
	$slug = $result['post_name']; // Per creare la directory del post
	$date = strtotime( $result['post_date'] );
	
	
	$html = '<!DOCTYPE html>' . "\n";
	$html .= '<html>' . "\n";
	$html .= '<head>' . "\n";
	$html .= '<title>' . $title . '</title>' . "\n";
	$html .= '<meta charset="utf-8" />' . "\n";
	$html .= '<meta name="description" content="' . $excerpt . '" />' . "\n";
	$html .= '</head>' . "\n";
	$html .= '<body>' . "\n";
	$html .= '<article class="post">' . "\n";
	$html .= '<header class="post-header">' . "\n";
	$html .= '<time class="post-date">' . strftime( '%A %e %B %Y', $date ) . '</time>' . "\n";
	$html .= '<h1 class="post-title">' . $title . '</h1>' . "\n";
	$html .= '<p class="post-excerpt">' . $excerpt . '</p>' . "\n";
	$html .= '</header>' . "\n";
	$html .= '<div class="post-content">' . "\n";
	$html .= $content;
	$html .= '</div>' . "\n";
	$html .= '</article>' . "\n";
	$html .= '</body>' . "\n";
	$html .= '</html>';
	
	mkdir( $path . $slug, 0755 ); // Creo la directory del post e la rendo accessibile
	$file = fopen( $path . $slug . '/index.html', 'w' ); // Creo il file index.html all'interno della directory
	fwrite( $file, $html ); // Inserisco i contenuti memorizzati in $html
	fclose( $file );
	
	
}

È raro dover utilizzare questa soluzione: un esempio potrebbe essere quello di voler passare ad un altro CMS di tipo statico.

Torna su