要加载当前帖子预览的正文,您会将哪个URL传递给wp_emote_get?

时间:2010-11-24 作者:Scott B

在下面的代码中,我试图获得对当前帖子完全渲染预览的正文内容的引用。。。

$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;
我只是把它发送到$post->post\\u content,这样我就可以很容易地看到它了。

这是它返回的部分内容。。。

<body id="error-page">
<p>You do not have permission to preview drafts.</p></body>
</html>
我是以管理员身份登录的,所以显然我把预览称为错误的。如何在wp\\u remote\\u get中传递URL以获取预览流的正文部分?

当我使用。。。

$post->post_content =  "<pre>".$response[\'body\']."</pre>";
我明白了

<pre><</pre>

1 个回复
最合适的回答,由SO网友:hakre 整理而成

URL没有问题,您需要添加的是Cookie,这些Cookie可以验证您是允许查看预览的用户。这基本上就是发送标题。我会从HTTP API (Wordpress Codex) 正在寻找添加其他HTTP标头和设置Cookie的方法。

否则-因为这可能有点复杂-您可以查看预览代码内部,看看是否可以提供一个钩子来控制对预览的访问。如果可能的话,您可以向URL添加一些秘密参数,这将允许您在不需要登录的情况下预览任何页面(也不需要为预览提供nonce)。

第一种或第二种方法的结果都是一样的,唯一的区别是如何触发它。

结束

相关推荐