El problema no es con la caché de objetos de WordPress, hasta donde yo sé, no es persistente entre solicitudes. El problema ocurre con sitios que tienen algún tipo de caché persistente: https://developer.wordpress.org/reference/classes/wp_object_cache/#persistent-caching. Esto se puede configurar a través de un plugin, pero también está habilitado por defecto por algunos proveedores de alojamiento, por ejemplo WP Engine. Creo que en el caso de WP Engine, no habilitan la caché de objetos en su página de inicio de sesión, pero sí la habilitan para usuarios anónimos en todas las demás páginas. Por lo tanto, en WP Engine, el problema solo se activa si el enlace “iniciar sesión con Discourse” se agrega a una página que no sea la página de inicio de sesión.
El problema con discourse_sso_url es que cuando siempre se establece en el mismo valor, para sitios que tienen habilitada una caché persistente, siempre devolverá el mismo nonce. Establecer su valor discourse_sso en una cadena aleatoria, en lugar de su valor predeterminado de 1, rompe la caché. Al menos siempre ha funcionado así cuando lo he probado anteriormente. No tengo las cosas configuradas para probarlo en este momento.
Editar: hay algunos detalles más sobre el problema aquí: Discourse (as provider) + WP SSO nonce error - #14 by simon. Ha pasado bastante tiempo desde que miré esto. La solución al problema en ese momento parecía ser tanto agregar una cadena aleatoria a discourse_sso_url como asegurarse de que la caché de páginas no estuviera habilitada en la página donde se mostraba el enlace de inicio de sesión (de lo contrario, la cadena aleatoria no será única para cada visita de un usuario anónimo).