WordPress技术问题:获取文章标题与内容时页面空白
修复WordPress获取所有文章内容的空白问题
嘿,我来帮你搞定这个问题!你的代码里有几个关键错误导致页面空白,咱们一步步修复:
1. 致命语法错误:数组键值对符号用错了
你写的['posts_per_page' = -1]里用了普通赋值符号=,但PHP数组的键值对必须用=>来关联,这个语法错误会直接让PHP解析失败,页面自然就空白了。
2. 获取文章内容的方式不正确
在while循环里,$the_query->post_content不是正确的调用方式。the_post()方法已经把当前文章的信息赋值给了全局的$post对象,同时WordPress也提供了模板函数来更安全地获取内容:
- 用
get_the_content():会自动处理短代码、格式转换,推荐使用 - 或者直接用
$post->post_content:获取数据库里的原始内容(不处理短代码)
3. 开启错误提示方便调试(新手必备)
调试阶段建议开启PHP错误输出,这样能直接看到报错信息,不用瞎猜问题在哪。可以在代码开头加上这段:
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
修复后的完整代码
<?php // 调试用:开启错误提示,上线后可以注释掉 ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); require_once("blog/wp-load.php"); // 修复数组赋值符号,获取所有文章 $the_query = new WP_Query( ['posts_per_page' => -1] ); if ( $the_query->have_posts() ) { while ( $the_query->have_posts() ) { $the_query->the_post(); // 输出文章标题 echo '<h2>' . get_the_title() . '</h2>'; // 输出处理后的文章内容 echo '<div style="margin-bottom: 2rem;">' . get_the_content() . '</div>'; } wp_reset_postdata(); } else { // 没有文章时的提示 echo '<p>暂无发布的文章</p>'; } ?>
这段代码不仅修复了错误,还加上了标题输出、内容分隔样式,以及无文章时的友好提示,更实用。
内容的提问来源于stack exchange,提问作者wetler
相关产品推荐
相关产品推荐

