Capita alcune volte di dover realizzare una landing page per un particolare evento, oppure una particolare promozione. Ci si trova così a dover anteporre questa pagina alla homepage di WordPress. La prima cosa a cui viene da pensare è di creare un file index.html che venga letto prima dell’index.php. Effettivamente funziona ma… Come possiamo poi raggiungere la reale home del sito? Non c’è verso.

Occorre quindi cambiare approccio… Se la pagina “preposta” deve essere conforme col sito, potrebbe essere semplicemente sufficiente creare una pagina personalizzata con WordPress ed impostarla come homepage. Tuttavia, sono sicuro, che quando si vuole creare una locandina o landing page, di WordPress ci interesserà realmente poco.

Quindi, dopo tutta questa digressione, esiste un modo per realizzare una pagina senza impedire di visualizzare comunque la homepage? Sì esiste. Attraverso l’uso delle sessioni. Vediamo come fare.

Una sessione per gestire una pagina splash

Immaginiamo che la nostra landing page si chiami “landing-promozionale.php” e si trovi nella sottocartella “/promo/” a partire dalla root del sito. (NB: dato che operiamo con le sessioni sarà necessario salvare il file con estensione .php). Senza toccare file .htaccess o altro, andiamo ad aggiungere in cima alla nostra pagina:

<?php  session_start();  $_SESSION['splashscreen'] = true;  ?>

Avremo così creato una sessione. Dentro a questa pagina linkiamo la nostra attuale home se vogliamo. A questo punto apriamo il file index.php del nostro tema (o home.php o header.php) e prima di qualsiasi output incolliamo:

<?php  session_start();  // controlla se l'utente ha già visto la pagina splash  if (!$_SESSION['splashscreen'])  {  	header("location: /promo/landing-promozionale.php");  	exit();  }  ?>

a questo punto, ogni volta che un utente visiterà la vostra homepage verrà effettuato un controllo della sessione. Se non avete ancora visitato la pagina splash verrete redirezionati lì. A questo punto la variabile di sessione “splashcreen” verrà settata a true. In caso di ritorno sulla index quindi non verrà più eseguita finchè l’utente non uscirà dal browser. Semplice ed efficace!