single_post_title()
和get_the_title()
工作方式完全不同。
get_the_title()
(或the_title()
, 将在中获得当前帖子的标题the loop:
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
the_title();
endwhile;
endif;
?>
因此,当在循环中使用时,它是用于获取博客和存档模板中每个帖子的帖子标题的函数。
get_the_title()
也可用于获取特定帖子的标题。这可以通过将ID传递给您想要其标题的帖子来实现:
echo get_the_title( 123 );
<小时>
single_post_title()
, 另一方面,获取查询对象的标题。当您在单个帖子或页面上时,“查询对象”将是
WP_Post
表示该帖子或页面,以及
single_post_title()
获取该帖子的标题。我发现
this article 它更详细地描述了查询的对象是什么。
因此,在单个模板上,这几乎肯定与循环中的当前帖子相同。但是,由于此函数始终返回查询对象的标题,因此可以使用它在循环外部或辅助循环内部获取当前页面的标题。
还要注意的是,由于博客和归档文件的查询对象不是单个帖子或页面,single_post_title()
无法在这些页面上工作。对于要使用的页面the_archive_title()
, 或分类档案,single_term_title()
.