当前浏览:首页 / WordPress函数 / get_the_title()

get_the_title( int|WP_Post $post )

检索文章标题

themore...

titlemore...


描述

如果文章设置密码保护且访问者不是管理员,会在标题前显示“密码保护”字样,如果文章设置为私密,则标题前会显示“私密”字样。


参数

$post

(int|WP_Post) (可选) Post ID或WP_Post对象。默认值为全局$post。


返回

(string)



源码

查看源码 官方文档


更新日志

版本描述
0.71开始引入

使用示例

  • 示例1

    get_the_title有意允许HTML

    因此get_the_title不应转义

    如果要输出html属性的文章标题,请使用the_title_attribute()而不是get_the_title()

    <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a>
  • 示例2

    应转义get_the_title

    超级管理员和管理员可以在标题字段中输入任意HTML,但这并不能防止出现问题,例如:

    一个流氓管理员添加了一个带有恶意的javscript的脚本标签
    一个黑客通过漏洞设法改变标题
    一个被破坏的插件使用一个过滤器来改变标题
    一个被破坏的插件允许它被改变
    黑客闯入Redis/APC/Memcached并修改缓存
    基于文件的缓存已被破坏

    所有这些都与转义无关,转义可以确保输出的内容符合您的预期。这并不意味着你不能让用户把HTML放在那里,只要你指定允许哪些标签

    要安全显示标题,请执行以下操作:

    echo esc_html( get_the_title() );

    如果希望标题包含HTML标记:

    echo wp_kses_post( get_the_title() );
  • 示例3

    打印当前文章的标题

    echo get_the_title();
    

    简单的面包屑痕迹页面,两层深。

     
    echo '<div class="breadcrumb">';
    	// If there is a parent, display the link.
    	$parent_title = get_the_title( $post->post_parent );
    
    	if ( $parent_title != the_title( ' ', ' ', false ) ) {
    		echo '<a href="' . esc_url( get_permalink( $post->post_parent ) ) . '" alt="' . esc_attr( $parent_title ) . '">' . $parent_title . '</a> » ';
    	}
    
    	// Then go on to the current page link.
    	echo '<a href="' . esc_url( get_permalink() ) . '" rel="bookmark" alt="' . esc_attr( get_the_title() ) . '">' . get_the_title() . '</a>';
    echo '</div>';
    
  • 示例4

    get_the_title在返回值之前被过滤。如果您正在检查文章标题的原始值,那么对于空标题,您可能会得到一个“untitled”字符串值,具体取决于博客的区域设置。要获取文章标题的原始值,请使用get_post并访问其post_title属性