Obtener el ID de la página visitada anteriormente
Divide esto en dos partes:
Primero, creamos una variable que almacene la URL de la última página visitada, así:
$prev_url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
Luego, podrías usar substr y strpos para recortar todo lo que esté entre ?= y la / después del número de ID. Así:
$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, "/"));
... O podrías usar jQuery/Javascript para lograr lo mismo.
No he probado esto, pero debería funcionar. ¡Déjame saber cómo te va! ¡Buena suerte! ;)

gracias - ya estaba pensando en esta dirección, pero el manual de php dice al respecto: "La dirección de la página (si existe) que refirió al agente de usuario a la página actual. Esto lo establece el agente de usuario. No todos los agentes de usuario lo configurarán, y algunos permiten modificar HTTP_REFERER como una característica. En resumen, no se puede confiar realmente en ello." Así que tengo algunas dudas sobre si es la mejor manera de proceder...

Cierto - el HTTP_REFERER depende únicamente del servidor. Para ser honesto, no conozco otras soluciones para esto. Si no es una función crucial, seguiría adelante y usaría HTTP_REFERER ya que es bastante estable entre agentes.

He hecho este truco de esta manera para permitirme también comprobar si es una de mis páginas:
//Obtener el enlace de la última página del historial
$prev_url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null;
//Comprobar si no es nulo y si contiene la URL de mi blog
if( !empty( $prev_url ) || strpos( $prev_url, (string)get_blog_details()->domain ) !== false ) :
//Entonces mostrarlo solo si es una página de mi blog ?>
<a href="<?php echo $prev_url; ?>" class="previous-history-link">La última página del historial</a>
<?php endif; ?>
