当你使用 Elementor 编辑页面时,如果遇到 “You must call the content function” 的报错,很可能是当前主题的模板文件没有正确调用 the_content() 函数。搞清楚报错的根源,再配合几个简单的修复操作,就能让 Elementor 正常运行。
这篇文章就来讲讲这个报错是怎么来的,以及用什么方法可以把它修好。
报错原因:模板中缺少 the_content() 调用
Elementor 运行的前提是当前页面模板里包含 WordPress 的内容输出函数 the_content()。这个函数的作用是告诉 WordPress 把页面的正文内容插入到对应位置。
有些主题为了美观或性能,会用自定义的方式加载内容,比如直接用 get_template_part() 或其他结构,结果就可能把 the_content() 忽略掉了。Elementor 在渲染时找不到这个函数,就会报错:“You must call the content function”。
换句话说,Elementor想插入内容的位置被“堵住”了。
怎么判断是模板引起的?
你可以这样判断:
切换到 WordPress 默认主题(例如 Twenty Twenty-One)
再次编辑同一页面,看是否还能复现报错
如果报错消失,那问题就出在你之前用的主题模板上。这个方法能快速排除是否是主题结构导致的问题。
修复方法一:修改主题的 page.php 文件
最常见的处理方式是打开当前主题的 page.php 文件,确认是否有 the_content() 函数。如果没有,可以添加以下代码:
<?php
while ( have_posts() ) :
the_post();
the_content();
endwhile;
?>
这个代码块的意思是:遍历当前页面的内容,然后输出正文。Elementor 就能找到“入口”去加载编辑器中的内容了。
把它加到你希望正文出现的位置,一般是在 <main> 标签内或者 <div class=”content-area”> 内部。
修复方法二:创建专用的 Elementor 模板
如果不想动原来的主题文件,可以使用 Elementor 的模板功能:
打开 WordPress 后台 → 页面 → 新建页面
在模板选项中选择 “Elementor Canvas” 或 “Elementor Full Width”
保存并使用 Elementor 打开
这两个模板来自 Elementor 插件自身,绕过了主题的 page.php 结构,直接提供一个干净的页面结构,非常适合用来自定义页面。
注意:并不是所有主题都支持这些模板,部分第三方主题可能会屏蔽掉 Elementor 的模板选项。
修复方法三:切换主题或使用子主题覆盖
如果你用的是不太兼容的主题,比如部分收费主题没有专门为 Elementor 做适配,可以考虑使用一个基础的、兼容性更强的主题,比如 Hello Elementor、Astra 或 Blocksy。
如果你不想换主题,也可以通过创建子主题的方式,自己写一个包含 the_content() 的 page 模板。这样既能解决问题,又不会破坏主题原来的布局结构。
修复方法四:使用 Elementor 条件模板替换页面结构
如果你使用的是 Elementor Pro,可以创建一个“页面模板”并指定它替代默认的页面结构。
操作步骤:
后台 → 模板 → 添加新模板 → 页面
使用 Elementor 设计完整页面布局
发布时设置“条件”,例如应用于所有页面或特定页面
Elementor 会自动替代主题的默认结构
这种方法不依赖任何主题模板,直接用 Elementor 全权接管页面输出,问题也就不会再出现。
小结
Elementor 报错 “You must call the content function” 本质上是因为当前主题模板没有输出正文内容,导致 Elementor 无法插入页面内容。无论是修改模板、使用 Elementor 自带模板,还是切换到兼容主题,都能有效解决这个问题。