Las sesiones de complementos de Wordpress solo funcionan cuando inicias sesión

Tengo problemas con un complemento de Wordpress en el que estoy trabajando. Las sesiones PHP no se comportan de manera consistente. He leído los siguientes artículos:

https://wordpress.stackexchange.com/questions/121144/session-in-wordpress-plugin-development

https://silvermapleweb.com/using-the-php-session-in-wordpress/

Y muchos más que dan el mismo consejo sobre comenzar la sesión usando el gancho init.

He implementado esto en mi complemento:

add_action('init', 'set_session', 1);

function set_session(){
    if(!session_id()){
        session_start();
    }
}

Las sesiones todavía se comportan de manera extraña, por lo que he creado una prueba para ver si las sesiones se están configurando.

$_SESSION['GuestID'] = 'test';

if(!session_id()){
    echo 'Session Not Started';
} else{
    if(isset($_SESSION['GuestID'])){
        echo 'Guest ID From Session: '.$_SESSION['GuestID'];
    } else{
        echo 'Guest ID not set in Session!';
    }
}

Cuando ejecuto esto, se devuelve la ID de invitado 'ID de invitado de la sesión: prueba', sin embargo, si vuelve a cargar intente acceder a la sesión desde otra página, obtendrá la 'ID de invitado no establecida en la sesión'. mensaje. Para mí, esto indica que la sesión se ha iniciado, pero por alguna razón no está almacenando los datos de mi sesión.

También puedo ver que no hay ninguna cookie almacenada para la identificación de la sesión.

La parte extraña de todo esto es que si inicio sesión en el administrador de Wordpress, la identificación de la sesión de PHP se almacena en una cookie, ¡y las sesiones se comportan como se esperaba!

¿Qué podría estar causando esto? ¿Y cómo puedo resolver el problema?

Respuestas a la pregunta(1)

Su respuesta a la pregunta