¿Qué URL se debe pasar a wp_remote_get para cargar el cuerpo de la vista previa del post actual?

24 nov 2010, 16:23:14
Vistas: 2.32K
Votos: 1

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>
2
Comentarios

¿Me estoy perdiendo algo o no había ya una pregunta relacionada con esto?

hakre hakre
24 nov 2010 17:01:37

@hakre: Replanteé la pregunta una vez que llegué al meollo del problema ;)

Scott B Scott B
24 nov 2010 17:13:34
Todas las respuestas a la pregunta 1
0

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.

24 nov 2010 16:57:44