我正在创建一个脚本来获取应用的wordpress帖子的内容和元素,直接在数据库上进行查询,因为它比包含wp函数更快。但问题是帖子内容没有格式化保存到数据库中。我知道我可以使用
获得它apply_filters('the_content', $content)
但正如我所说,我想避免使用wp函数,因为它们非常慢。
有没有办法手动“模拟”apply_filters? 是否有更好(更快)的方法来包含除
之外的wp函数require('../wp-load.php');
这似乎很慢?
答案 0 :(得分:1)
“廉价”方法包括文件wp-includes/formatting.php
(可能还有其他文件),并通过所需的过滤功能运行代码,例如wpautop()
。
但是,这并不能保证内容的格式与WordPress博客类似 - 特别是因为它不会应用插件所做的修改。此外,如果新的WordPress版本引入了新的或不同的过滤器,您的代码将无法在没有修改的情况下使用它们。
我的确建议包括wp-load.php
并使用WP过滤器API。
我不认为它过于“慢”(但你可以定义它),但如果性能问题,我建议重新考虑你的架构。
例如,如果您希望网站显示WordPress数据库中的内容,请不要在每个页面请求上提取和呈现内容。相反,使用缓存解决方案 - 可以是WordPress已存在的解决方案之一,也可以是服务器级别的缓存解决方案(例如Varnish),或者您甚至可以通过存储预渲染页面并交付(半)来实现自己的缓存静态。