Gestione di strutture per Viaggi Spirituali

Viaggi Spirituali è un blog dedicato a luoghi, chiese e santuari che sono mete di pellegrinaggi religiosi, in Italia così come in Polonia e in Francia. Mi è stato chiesto di integrare il sito con delle strutture per il turismo religioso. Viaggi Spirituali, come spiega la redazione, è un sito aperto ai contributi degli utenti, e quindi sono accettati i suggerimenti per aggiungere o modificare le strutture.

Le pagine delle strutture sembrano essere pagine WordPress, ma in realtà sono gestite in autonomia da un CMS secondario ad-hoc. E’ possibile infatti gestire in autonomia un albero di pagine che mantiene però l’aspetto del nostro blog. Basta creare un’unica pagina in WordPress, alla quale redirezionare tramite mod_rewrite tutte le richieste:

RewriteRule ^strutture-turismo-religioso/(.*)$ /file-che-gestisce-questa-parte-del-sito.php [L]

Questa regola va messa prima di tutte le altre. All’interno del file che si occupa di gestire questa parte del sito ho salvato il contenuto testuale in una variabile, e prima di includere l’index.php di WordPress ho reimpostato un paio di variabili per evitare l’errore 404:

$_SERVER['REQUEST_URI'] = $_SERVER['REDIRECT_URL'] = '/strutture-turismo-religioso/';
ob_start();
include 'index.php';
$wp_page = ob_get_contents();
ob_end_clean();

Ci affidiamo all’output buffering per poter memorizzare in una variabile il risultato dell’elaborazione di WordPress e poter così apporre tutte le dovute sostituzioni. Se come contenuto della pagina abbiamo lasciato un riferimento, basta una sola riga di codice per avere la pagina da mostrare:

$pagina_da_mostrare = str_replace('[nostro_riferimento]', $contenuto_elaborato, $wp_page);

Ed ecco che senza modificare un solo file del core o del tema WordPress abbiamo integrato un insieme di pagine e sottopagine  che possiamo gestire in completa autonomia mantenendo comunque il tema ed i widget scelti, senza che ce ne sia traccia nel database: ma per la creazione della sitemap questo non è un fatto positivo, a cui bisogna porre rimedio. Il meccanismo è lo stesso: sempre tramite mod_rewrite ho redirezionato le richieste di sitemap.xml e sitemap.xml.gz verso un mio file PHP che recupera la sitemap originale e la integra con le pagine extra.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

%d blogger hanno fatto clic su Mi Piace per questo: