¿Qué URL se debe pasar a wp_remote_get para cargar el cuerpo de la vista previa del post actual?
En el código a continuación, estoy intentando obtener una referencia al contenido del cuerpo de la vista previa completamente renderizada del post actual...
$response = wp_remote_retrieve_body(wp_remote_get('http://localhost/mysite/test-post/?preview=true&preview_id=28&preview_nonce=640bc54ca4'));
$post->post_content = $response;
Solo lo estoy enviando a $post->post_content para poder verlo fácilmente.
Esto es parte de lo que devuelve...
<body id="error-page">
<p>No tienes permiso para previsualizar borradores.</p></body>
</html>
Estoy logueado como administrador, así que obviamente estoy llamando a la vista previa incorrectamente. ¿Cómo puedo pasar la URL en wp_remote_get para obtener la sección del cuerpo del flujo de vista previa?
Cuando uso...
$post->post_content = "<pre>".$response['body']."</pre>";
Obtengo
<pre><</pre>

La URL está bien, lo que necesitas agregar son cookies que te autentiquen como el usuario que tiene permiso para ver la vista previa. Básicamente se trata de enviar encabezados. Yo comenzaría con la API HTTP (Wordpress Codex) buscando un método para agregar encabezados HTTP adicionales y configurar tus cookies.
De lo contrario - porque probablemente esto sea algo complicado - podrías revisar el código de vista previa para ver si puedes proporcionar un gancho (hook) que controle el acceso a las vistas previas. Si es posible, puedes agregar algún parámetro secreto a la URL que te permita obtener una vista previa de cualquier página sin necesidad de estar conectado (y sin necesidad de un nonce, ya que también se requiere para la vista previa).
El resultado de cualquiera de los dos enfoques es prácticamente el mismo, la única diferencia sería cómo activarlo.
