Ce URL trebuie să transmiți la wp_remote_get pentru a încărca conținutul previzualizării postării curente?

24 nov. 2010, 16:23:14
Vizualizări: 2.32K
Voturi: 1

În codul de mai jos, încerc să obțin o referință către conținutul complet renderat al previzualizării postării curente...

$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;

Doar îl transmit la $post->post_content pentru a-l putea vizualiza mai ușor.

Iată o parte din ce returnează...

<body id="error-page">
<p>Nu ai permisiunea să previzualizezi drafturile.</p></body>
</html>

Sunt autentificat ca administrator, așadar evident apelez previzualizarea incorect. Cum pot transmite URL-ul în wp_remote_get pentru a obține secțiunea body din fluxul de previzualizare?

Când folosesc...

$post->post_content =  "<pre>".$response['body']."</pre>";

Obțin

<pre><</pre>
2
Comentarii

Mi scapă ceva sau nu exista deja o întrebare legată de asta?

hakre hakre
24 nov. 2010 17:01:37

@hakre: Am reformulat întrebarea odată ce am ajuns la esența problemei ;)

Scott B Scott B
24 nov. 2010 17:13:34
Toate răspunsurile la întrebare 1
0

URL-ul este în regulă, ceea ce trebuie să adăugați sunt cookie-uri care vă autentifică ca utilizatorul care are permisiunea să vizualizeze previzualizarea. Aceasta înseamnă, în esență, trimiterea de antete. Aș începe cu API-ul HTTP (Wordpress Codex) căutând o metodă pentru a adăuga antete HTTP suplimentare și pentru a seta cookie-urile.

În caz contrar - deoarece probabil acest lucru este oarecum complicat - ați putea arunca o privire în interiorul codului de previzualizare pentru a vedea dacă puteți oferi un hook pentru a controla accesul la previzualizări. Dacă este posibil, puteți adăuga un parametru secret în URL care vă va permite să previzualizați orice pagină fără a fi nevoie să fiți autentificat (și fără nevoia unui nonce, deoarece acesta trebuie furnizat și pentru previzualizare).

Rezultatul fie al primei, fie al celei de-a doua abordări este destul de același, singura diferență ar fi modul în care este declanșat.

24 nov. 2010 16:57:44