获取 wordpress 格式的 post 内容而不包括 wordpress 函数

Get wordpress formatted post content without including wordpress functions

我正在创建一个脚本来获取应用的 wordpress posts 的内容和元数据,直接在数据库上进行查询,因为它比包含 wp 函数要快得多。但是问题是 post 内容在没有格式化的情况下保存到数据库中。我知道我可以使用

获取它
apply_filters('the_content', $content)

但正如我所说,我想避免使用 wp 函数,因为它们真的很慢。

有没有办法手动"simulate" apply_filters? 除了

之外,是否有更好(更快)的方法来包含 wp 函数
require('../wp-load.php');

哪个好像很慢?

“廉价”方法将包括文件 wp-includes/formatting.php(可能还有其他)和 运行 您的代码通过所需的过滤功能,例如 wpautop().

但是,这并不能保证内容的格式与您的 WordPress 博客相同 – 特别是因为它不会应用插件所做的修改。此外,如果新的 WordPress 版本引入了新的或不同的过滤器,您的代码将无法在不进行修改的情况下使用它们。


我确实建议包括 wp-load.php 并使用 WP 过滤器 API。

我认为它并不过分“慢”(无论您如何定义它),但如果性能是个问题,我建议您重新考虑您的架构。

例如,如果您希望网站显示您的 WordPress 数据库中的内容,请不要在每个页面请求中提取和呈现内容。相反,使用缓存解决方案——WordPress 已经存在的缓存解决方案之一,或者服务器级别的缓存解决方案(例如 Varnish),或者您甚至可以通过存储预渲染页面并交付它们(半)来实现自己的缓存静态的。