您正在使用the_title()
在环路之外,这在技术上是不正确的。它是一个“循环”标记,取决于global
变量$post
它在循环的每次迭代中都设置为当前帖子,但会预先填充循环中的第一篇帖子,这就是您所看到的。要获取页面本身的标题,您需要:
$qobj = get_queried_object();
echo $qobj->post_title;
但要知道
get_queried_object()
将返回不同的对象,或者根本不返回对象,具体取决于您所在的页面。您需要将代码包装在条件中以避免错误。
if (is_singular()) {
$qobj = get_queried_object();
echo $qobj->post_title;
}
或。。。
$qobj = get_queried_object();
if(isset($qobj->post_title)) {
echo $qobj->post_title;
}