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

无头WordPress场景下WPGraphQL返回Divi短代码未渲染问题

问题根因

WPGraphQL的内容渲染流程默认没有触发Divi专属的短代码渲染逻辑,你之前针对REST接口配置的短代码渲染规则不会自动作用于GraphQL接口,按照以下步骤配置即可解决:

操作步骤

1. 新增GraphQL专属渲染钩子

将以下代码添加到Divi子主题的functions.php文件中:

add_filter('graphql_post_object_content', function ($content, $post, $args, $context, $info) {
    // 优先调用Divi官方提供的布局渲染方法
    if (function_exists('et_builder_render_layout')) {
        return et_builder_render_layout($post->post_content);
    }
    // 兜底触发WordPress通用内容渲染钩子
    return apply_filters('the_content', $post->post_content);
}, 10, 5);

2. 补充依赖加载配置(可选,针对动态模块渲染异常场景)

如果配置上述代码后,全局模块、联系表单这类动态Divi模块还是无法正常渲染,再追加以下代码到functions.php:

add_action('graphql_init', function () {
    // 提前加载Divi构建器前端渲染所需的依赖资源
    if (function_exists('et_builder_init_global_settings')) {
        et_builder_init_global_settings();
        et_builder_add_main_elements();
    }
});

3. 验证生效

  • 确认Divi「主题选项」→「构建器」→「高级」分类下的「在REST API中启用短代码渲染」开关保持开启
  • 清空WPGraphQL缓存、WordPress全站缓存后,重新执行你现有的GraphQL查询即可拿到和REST接口一致的渲染后HTML内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:06:03