Ce URL trebuie să transmiți la wp_remote_get pentru a încărca conținutul previzualizării postării curente?
Î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>

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.
