首页
学习
活动
专区
圈层
工具
发布

优化WordPress性能的高级指南

例如,如果我们想要在获取帖子( 比如内部的 footer.php)之后某个的某个时间点确定我们正在处理什么样的页面,这时可能就是一个问题。...事实上,官方文档中有一个建议不要使用此功能的注释,因为你需要调用附加方法来恢复原始查询。而且,替换主查询会对页面加载时间产生负面影响。  ...这可能会导致不一致,特别是如果我们在代码中使用查询相关的过滤器,因为你在页面中不期望的帖子可能会被该函数返回。 使用WP_Query类 在我看来,这是从数据库中检索帖子的最佳方式。...最后,我们将一个重型数据库查询(使用WP_Query元键)更改为简单直接的查询(调用get_post()),这是一个更好和更有效的方法。...例如,如果我们在用户滚动我们的主页时动态加载更多的帖子,那么最好直接调用其他前端页面,这将获得被缓存的好处。 然后,我们可以通过浏览器中的JavaScript来解析结果。

8.2K20

CVE-2022-21661:通过 WORDPRESS SQL 注入暴露数据库信息

今年 10 月,我们收到了来自 GiaoHangTietKiem JSC 的 ngocnb 和 khuyenn 的报告,涉及 WordPress 中的 SQL 注入漏洞。...首先,这是一个演示该漏洞的快速视频: 漏洞 该漏洞发生在 WordPress Query ( WP_Query ) 类中。WP_Query对象用于对 WordPress 数据库执行自定义查询。...插件和主题使用此对象来创建他们的自定义帖子显示。  当插件使用易受攻击的类时,就会出现该漏洞。一个这样的插件是Elementor Custom Skin 。...对于这篇文章,我们针对 WordPress 5.8.1 版和Elementor Custom Skin插件 3.1.3 版测试了该漏洞。...这意味着do_action方法调用get_document_data方法。 get_document_data方法创建一个WP_Query对象。

5.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Discuz解决帖子页面字体错位和大小变大

    发现了一个很有意思的问题,字体文件会在一些情况下无法加载,所以就对着这个Bug开始着手解决,结果竟掏了360的底...问题情况如图所示(由于我很懒,已经修复了问题,不想再来一遍,这里用网图)我们可以从中看到,帖子页面字体有错位...图片为看不懂的小伙伴翻译一下:黄色字体:解析器阻塞、跨站点(即不同的eTLD+1)脚本,https://s.ssl.qhres2.com/ssl/ab77b6ea7f3fbf79.js,通过document.write调用...由于网络连接不良,浏览器可能会在当前或将来的页面加载中阻止此脚本的网络请求。如果在此页面加载中被阻止,将在随后的控制台消息中确认。...[1]// 返回 undefined拼接 token把 location.href 字符串倒转成 t取倒转后的字符串 t 前16位,不足16为视为 “”每次取sid和t各一个字符,拼接成Token。...i.push(r[s] + (n[s] || "")); return i.join("")最后,打包参数给zz.gif上述代码逻辑很简单,就是加载一个 gif 图片,后面缀上当前 URL 和网站标识

    1.3K30

    10个WordPress的query_posts语句使用技巧

    Query_posts语句是WordPress最实用的语句之一。 正是在query_posts的作用下,WordPress的Loop循环才能够调用并显示所有文章内容。...页面? 附件? 你可以按文章类型调用自己想要的日志、页面或附件。 对附件的调用可能是最有趣但同时被使用频率也是最低的一个。...抓取所有文章 你可以用几种不同的方法在网站地图和存档页等需要显示所有已发布文章的地方调用所有文章。 要调用所有已发布的文章,可以使用下面的这段代码: WordPress filter函数的介绍,可以用在文章查询和调用上的filter包括: post_limits 应用于查询的LIMIT语句,该语句可返回日志数组 posts_distinct...其原理是当用户在某一个页面上使用多个WordPress循环时,用代码阻止重复内容被链接。

    1.4K90

    WordPress 6.1 将提高 WP_Query 查询性能,真正实现站点 0 SQL

    WP_Query 是 WordPress 中最重要的 class,几乎每个页面都是用它来获取文章,但是它最大的问题是,对文章进行查询的时候是直接到数据库查询的,结果没有被缓存起来,所以真正实现站点的 0SQL...我之前也通过各种方式实现了0SQL,其中应用到了 Autumn Pro 和免费的 Sweet 主题上,现在官方实现了 WP_Query 数据库查询缓存,对 WordPress 整个性能提升肯定有显著的帮助...对于未使用内存缓存的站点来说,同个页面中相同的 WP_Query 也也不会重复执行,所以站点性能也会得到一定提升,但是不会那么显著。...WP_Query 实现数据库查询缓存是有一套自己的实现机制,所以对于插件和主题开发者来说,如果要对文章进行操作的话,最好使用 WordPress 提供的文章操作函数。...,从上可知,WP_Query 查询结果将会被缓存,这意味着现在调用 get_page_by_title 也将会被缓存,当然所有通过 WP_Query 获取数据的函数也将被缓存。

    1.1K20

    WordPress文章归档页面分组和分页

    WordPress 归档页面是一个网站的历史内容存档,它允许用户浏览网站的过去内容。它的存在有以下几个意义: 为用户提供内容索引和历史参考:用户可以通过归档页面快速浏览网站的历史文章。...方便用户查找特定时间段的内容:用户可以通过归档页面快速找到特定日期或者月份的文章。 对网站管理员来说,可以帮助管理网站的内容,通过定期归档旧内容,可以保持网站的速度和效率。...-- 输出当前页面的标题和写在编辑器里的内容 --> 将需要调用的php函数放到结尾,方便查阅模板主体逻辑。...方法来源: https://www.solagirl.net/wordpress-paged-article-list.html 为了保持和自己的主题一致,分页函数可以根据前面分页方法一样改为自己主题的

    86310

    我又搬博客了 — 和WordPress那些不得不说的事

    而现在将全站迁移至WordPress也是无奈之举,一方面是更好的生态,意味着更多插件和主题选择,减少了重复造轮子魔改程序的情况,另一方面是WordPress有更频繁的更新频率,漏洞和Bug能更快得到修补...页面执行时间进行了简单分析,相对于自带的xdebug扩展,Blackfire更加灵活,可以将服务端和客户端分开部署,无需本地调试,生成的性能分析也很详细,诸如CPU Time, I/O Wait, Peak...MO文件的缓存机制 非英文的WordPress在运行时,对于每个页面都会调用加载.mo文件,在翻译子系统上耗费大量计算性能,此处可以使用Speed Up - Translation Cache这个插件,...由此带来的反面结果就是,大量的apply_filters函数拖慢了页面加载时间。...以本博客为例,在Blackfire中可以看到,apply_filters函数被调用了近600次,耗费了200ms时间,但是很不幸,目前没有办法解决,只能希望WordPress在后续版本中优化性能。

    59920

    WordPress 文章查询教程6:如何使用排序相关的参数

    在 WordPress 中,使用 WP_Query 进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。...「WordPress果酱」将通过一系列教程讲解如何使用 WP_Query 进行 WordPress 文章查询。...我写这一系列文章的目的也是为了方便自己使用这些参数的时候方便查询,所以如果你也是经常进行 WordPress 二次开发的话,建议收藏本文。...第六讲关于排序相关的参数,排序相关的参数就是 order 和 orderby 两个参数,但是值比较多比较多: 首先是 order 参数,数据类型为:(string | array),用于指定 “orderby...menu_order – 按照页面的顺序排序。常用于页面(排序字段在页面编辑页面的「页面属性」框中),也可用于具有不同 menu_order 值的任何文章类型(默认值都是 0)。

    3.1K30

    WordPress 首页文章如何使用分类过滤?

    如果懂代码,WordPress 的 WP_Query 支持 category__in 和 category__not_in 这两个参数,使用 pee_get_posts hook 处理一下就好了。...,支持截屏贴图等 标题设置 一键设置 WordPress 所有页面的页面标题 登录优化 一键优化 WordPress 登录注册界面,并支持第三方账号登录和绑定 内容模板 通过短代码在内容中插入一段共用的内容模板...附件页面直接图片链接。 配置器 全自动 WordPress 配置器,不用一行代码就可以开发。 支持自定义文章类型,自定义字段,自定义分类,分类选项,全局选项。...站点选项 查看和管理所有非 WordPress 系统自动生成的站点选项。 如果你觉得某个选项无用,可以直接删除它。 后台论坛 WordPress 后台论坛,支持创建帖子,分组,消息。...文章置顶 支持置顶文章排序和分类文章置顶的 WordPress 插件

    2.5K20

    使用 WP_Query 而不是 query_posts 自定义 WordPress 查询

    前面我们介绍了 WordPress 的主循环和全局变量,那么如果需要自定义 WordPress 查询进行一些事情,可以有两种方法,最容易的方法是使用 query_posts 函数,另外一种方法就是自定义...可能使一些 WordPress 条件判断函数失效。 需要去重新设置和处理回滚和偏移等问题。...使用 WP_Query 自定义查询 所以最好的方法是使用 WP_Query 来创建自定义 WordPress 查询,这样创建的查询和 WordPress 主循环隔离开,并不会影响主循环的行为。...> 上面我们用了 WP_Query 的两个方法,分别是 have_posts 和 the_post,这两个方法的具体意思,可以参考这篇文章全局变量和 WordPress 主循环里面的介绍。...> 简单总结 使用 WP_Query 创建自定义 WordPress 查询是不会干扰默认的 WordPress 主循环,使用它我们完全可以在一个页面同时运行两个或者以上完全独立的 WordPress

    70720

    为了性能极限考虑,WordPress 6.2 弃用 get_page_by_title() 函数

    WordPress 6.1 的时候通过提高 WP_Query 查询性能真正实现站点 0 SQL,现在 WordPress 6.2 将性能要求做到更加极致,将弃用 get_page_by_title()...函数,建议开发者直接使用 WP_Query 根据标题获取页面。...两点原因: get_page_by_title() 函数是直接使用数据库查询获取页面的,可能由于数据库版本或者引擎不同,而造成返回的数据会有可能不同,切换到使用 WP_Query 获取数据则可确保得到相同的结果...WordPress 6.1 的时候提高了 WP_Query 性能,实现了缓存,所以开发者直接使用 WP_Query 去根据标题获取页面则效率更高。该函数就没有必要了。...那么怎么使用 WP_Query 来实现根据标题获取页面呢: $query = new WP_Query( array( 'post_type' => '

    49530
    领券