GET_THE_TITLE()和Single_POST_TITLE()有什么区别吗?

时间:2020-03-08 作者:Kazu25

使用上有什么区别吗

<?php get_the_title(); ?>

<?php single_post_title(); ?>
因为我总是可以得到相同的值

3 个回复
SO网友:Jacob Peattie

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().

SO网友:RiddleMeThis

是的,两者有一些区别。让我们看看。

single_post_title()

这是针对单个优化的。用于显示文章标题的php模板文件。

它不支持在标题后放置分隔符,但通过将prefix参数保留为空,可以手动设置标题分隔符。前缀不会自动在前缀之间放置空格,因此如果应该有空格,则参数值需要将其放在末尾。

Parameters

$prefix

(字符串)(可选)标题前显示的内容。

默认值:“”

$display

(bool)(可选)是否显示或检索标题。

默认值:true

<小时/>

get_the_title()

如果帖子受到保护,而访问者不是管理员,那么;“受保护”;将显示在文章标题之前。如果帖子是私人的,那么;“私人”;将位于帖子标题之前。

Parameters

$post

(int | WP\\u Post)(可选)Post ID或WP\\u Post对象。

默认值为全局$post。

老实说,我甚至不知道有一个\\u post\\u title()。我只使用get\\u the\\u title()或the\\u title(),这取决于我是否需要回显值。这些可以在任何地方使用,可以使用全局post,也可以传递ID。

SO网友:John Bauer

两者都不同。

获取\\u标题(int | WP\\u Post$Post)-检索文章标题如果帖子受到保护,并且访问者不是管理员,那么“受保护”将显示在帖子标题之前。如果帖子是私有的,那么“私有”将位于帖子标题之前。

显示或检索文章的页面标题这是针对单个优化的。用于显示文章标题的php模板文件。

它不支持在标题后放置分隔符,但通过将prefix参数保留为空,可以手动设置标题分隔符。前缀不会自动在前缀之间放置空格,因此如果应该有空格,则参数值需要将其放在末尾。

相关推荐

自定义PHP页面表单数据未显示为wp主题页面模板

我用PHP制作了一个年龄计算器。它在localhost/age/age-calculator.php我已将此文件作为wp主题页模板移动theme/mytheme/page-template/age-calculator.php<?php get_header(); /* Template Name: Age Calculator */ 创建页面并与此页面模板链接。输入表单工作正常,但在提交数据时。WordPress不会显示任何结果,也不会将我带到主页上。但在loca