You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress中get_the_content无法返回Gutenberg内容,如何获取完整内容?

获取WordPress文章完整post_content原始内容

你遇到的问题是因为WordPress在加载WP_Post对象时,会自动对post_content应用过滤规则,剥离掉块编辑器的注释格式内容。要获取数据库中存储的完整原始内容,可以用以下两种方法:

方法1:直接从数据库查询(最可靠)

通过$wpdb直接查询数据库,绕过WordPress的内容过滤机制:

global $wpdb;
$target_post_id = 8349; // 替换为你的文章ID
$full_raw_content = $wpdb->get_var(
    $wpdb->prepare(
        "SELECT post_content FROM {$wpdb->posts} WHERE ID = %d",
        $target_post_id
    )
);

执行这段代码后,$full_raw_content变量就会包含数据库中存储的所有内容,包括那些被HTML注释包裹的块数据。

方法2:临时禁用内容过滤(适用于需要WP_Post对象的场景)

如果必须通过WP_Post对象获取内容,可以临时移除相关过滤钩子,获取后再恢复:

// 移除可能过滤post_content的钩子
remove_filter('the_content', 'wp_kses_post');
remove_filter('post_content', 'wp_kses_post');

// 获取未过滤的WP_Post对象
$post = get_post(8349);
$full_raw_content = $post->post_content;

// 恢复过滤钩子,避免影响其他功能
add_filter('the_content', 'wp_kses_post');
add_filter('post_content', 'wp_kses_post');

注意:这种方法可能会受主题或第三方插件添加的额外过滤影响,稳定性不如直接数据库查询。

重要提示

获取原始内容后,如果需要在前端显示,务必自行处理内容安全,比如使用wp_kses_post()或其他合适的过滤函数,防止XSS攻击。

内容的提问来源于stack exchange,提问作者Chris Pink

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 06:57:12