热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VarnishESI&Wordpress-模拟加载帖子-VarnishESI&Wordpress-simulateloadingapost

Update:Iveansweredthismyself.Seebelow.更新:我自己也回答了这个问题。见下文。IguessImaskingfortheequiva

Update: I've answered this myself. See below.

更新:我自己也回答了这个问题。见下文。

I guess I'm asking for the equivalent of a set_the_id() function, if one existed.

我想我要求相当于set_the_id()函数,如果存在的话。

I'm using Wordpress with Varnish for performance, and I want to use an ESI (Edge Side Include) for the sidebar, so things like recent/popular posts can be refreshed more frequently than the post content itself.

我正在使用Wordpress和Varnish来提高性能,我想在侧边栏中使用ESI(Edge Side Include),因此最近/热门帖子之类的内容可以比帖子内容本身更频繁地刷新。

One way of doing this is creating an endpoint in your plugins directory etc. for Varnish to access from an ESI comment, with some code like this:

一种方法是在插件目录等中创建一个端点,以便Varnish从ESI注释中访问,其代码如下:


All fine so far; this is enough to load Wordpress and it to find all the relevant plugins. However they produce errors at various points (specifically wp-includes/post-template.php line 29) because they need to use things like get_the_id(), in_category() and properties of the post object to highlight certain posts and so on and no post has been loaded yet.

到目前为止一切都很好这足以加载Wordpress并找到所有相关的插件。但是它们会在各个点(特别是wp-includes / post-template.php第29行)产生错误,因为它们需要使用get_the_id(),in_category()和post对象的属性来突出显示某些帖子等等。帖子已经加载了。

How can I tell Wordpress to load a specific post ID in the code above, as if I'd gone to a URL like http://example.com?p=1, but without outputting a full page? I just want the environment to be setup as if post was active, then I can pass the current post ID as a parameter in my ESI call.

如何告诉Wordpress在上面的代码中加载特定的帖子ID,好像我去了http://example.com?p=1这样的网址,但没有输出整页?我只是希望设置环境就好像post是活动的,然后我可以将当​​前的帖子ID作为参数传递给我的ESI调用。

I thought query_posts() might help and I tried adding:

我认为query_posts()可能会有所帮助,我尝试添加:

query_posts( 'p=5' );

but it doesn't do anything.

但它没有做任何事情。

I also wondered about WP_Post::get_instance() (it only seems to take an object though, not a post ID).

我也想知道WP_Post :: get_instance()(它似乎只是一个对象,而不是一个帖子ID)。

Is there anything else I can use?

还有什么我可以使用的吗?

1 个解决方案

#1


0  

$query = new WP_Query( 'p=1' );

if ( $query->have_posts() ) {
    $query->the_post();   // this loads it
}

See http://codex.wordpress.org/Class_Reference/WP_Query for all the other parameters.

有关所有其他参数,请参阅http://codex.wordpress.org/Class_Reference/WP_Query。


推荐阅读
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • IB 物理真题解析:比潜热、理想气体的应用
    本文是对2017年IB物理试卷paper 2中一道涉及比潜热、理想气体和功率的大题进行解析。题目涉及液氧蒸发成氧气的过程,讲解了液氧和氧气分子的结构以及蒸发后分子之间的作用力变化。同时,文章也给出了解题技巧,建议根据得分点的数量来合理分配答题时间。最后,文章提供了答案解析,标注了每个得分点的位置。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • node.jsrequire和ES6导入导出的区别原 ... [详细]
  • 本文讨论了在使用PHP cURL发送POST请求时,请求体在node.js中没有定义的问题。作者尝试了多种解决方案,但仍然无法解决该问题。同时提供了当前PHP代码示例。 ... [详细]
  • 人脸检测 pyqt+opencv+dlib
    一、实验目标绘制PyQT界面,调用摄像头显示人脸信息。在界面中,用户通过点击不同的按键可以实现多种功能:打开和关闭摄像头, ... [详细]
author-avatar
小佛瞌睡蓝
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有