Ottenere l'ID della pagina visitata in precedenza
Vorrei ottenere l'ID (o il permalink) della pagina che il visitatore ha visitato immediatamente prima di accedere alla pagina corrente - in altre parole l'ID dell'ultima pagina nella cronologia del browser.
È possibile farlo? Qualche idea su come realizzarlo?

Suddividiamo questo in due parti:
Primo, creiamo una variabile che memorizza l'URL dell'ultima pagina visitata, in questo modo:
$prev_url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
Poi, potresti utilizzare substr e strpos per tagliare tutto ciò che si trova tra ?= e il / dopo il numero ID, così:
$prev_url = 'http://www.yoursite.com/?p=123';
$id_block = substr($prev_url, strpos($prev_url, "?p=")+1);
$id = substr($id_block, 0, strpos($id_block, "/"));
.. Oppure, potresti usare jQuery/Javascript per ottenere lo stesso risultato.
Non ho testato questo codice ma dovrebbe funzionare - fammi sapere come va! Buona fortuna ;)

grazie - stavo già pensando in questa direzione, ma il manuale php dice a riguardo: "L'indirizzo della pagina (se presente) che ha indirizzato l'user agent alla pagina corrente. Questo viene impostato dall'user agent. Non tutti gli user agent lo impostano e alcuni permettono di modificare HTTP_REFERER come funzionalità. In breve, non può essere considerato del tutto affidabile." Quindi ho qualche dubbio sul fatto che sia la soluzione migliore...

Vero - HTTP_REFERER dipende esclusivamente dal server. Onestamente, non conosco altre soluzioni per questo. Se non si tratta di una funzionalità cruciale, procederei utilizzando HTTP_REFERER poiché è abbastanza stabile da un agent all'altro.

Ho implementato questo trucco in questo modo per permettermi anche di verificare se si tratta di una delle mie pagine:
//Ottieni l'ultimo link della pagina dalla cronologia
$prev_url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null;
//Controlla se non è nullo e se contiene l'URL del mio blog
if( !empty( $prev_url ) || strpos( $prev_url, (string)get_blog_details()->domain ) !== false ) :
//Allora visualizzalo solo se è una pagina del mio blog ?>
<a href="<?php echo $prev_url; ?>" class="previous-history-link">L'ultima pagina dalla cronologia</a>
<?php endif; ?>
