今天测试新主题的时候,解决了一个奇怪的问题。
问题的表现是:文章内页不显示文章内容,但文章标题,标签,作者什么的都显示正常。
这个问题的奇怪之处在于:
- 只是文章内容不显示,其他的都显示,而且也不报错
- 首页的文章摘要显示正常
- get_the_content()显示正常
- 本地测试正常,网上测试就不显示
没办法我甚至用了英文搜索,结果也没找到答案。后来我想是不是the_content函数被覆盖了——类似于JS中的变量冲突——于是我找到了最容易覆盖系统函数的functions.php,结果发现问题果然在这里。
虽然原因并不是the_content被覆盖了,不过也差不多,代码中用add_action为the_content添加了一个函数,函数的功能并不重要,但这个函数却有错误,导致the_content输出的结果也就不对了。
如果你也碰到the_content没有内容的问题,你可以参考下面的修复办法:
- the_content必须在主循环中,即必须有<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
- 查看是不是有其他函数取了the_content的名字
- 查看有没有什么函数绑定到the_content()上面,通常在functions.php