Come avere una lista di tutte le pagine presenti in Wordpress

Tra pochi giorni c’è il “grande giorno”, migro la URL di un sito. Quindi è necessario creare tutte le regole di redirect, in modo che un visitatore vada sul nuovo indirizzo invece che il vecchio. Come fare però in modo veloce? Su Bloggersignal ho trovato uno snippet di codice php utilissimo.

Basta creare un file php nella directory del nostro sito Wordpress, dargli un nome a noi comodo (il classico pippo.php?) e inserire:

<?php

include "wp-load.php";

$posts = new WP_Query('post_type=any&posts_per_page=-1&post_status=publish');
$posts = $posts->posts;

header('Content-type:text/plain');
foreach($posts as $post) {
    switch ($post->post_type) {
        case 'revision':
        case 'nav_menu_item':
            break;
        case 'page':
            $permalink = get_page_link($post->ID);
            break;
        case 'post':
            $permalink = get_permalink($post->ID);
            break;
        case 'attachment':
            $permalink = get_attachment_link($post->ID);
            break;
        default:
            $permalink = get_post_permalink($post->ID);
            break;
    }
    echo "\n{$permalink}";
  //echo "\n{$post->post_type}\t{$permalink}\t{$post->post_title}";
}
?>

A questo punto andando su tuosito.it/pippo.php viene una lista completa di tutte le pagine dell’installazione di Wordpress!

Per esempio:

http://esempio.it/pagina1
http://esempio.it/pagina2
http://esempio.it/pagina3
http://esempio.it/pagina4

Poi dopo ho fatto una semplice sostituzione di testo, sostituire “http://esempio.it” con “Redirect 301 “ e quindi ho il file .htaccess quasi pronto per il trasferimento!