描述
如果文章设置密码保护且访问者不是管理员,会在标题前显示“密码保护”字样,如果文章设置为私密,则标题前会显示“私密”字样。
参数
- $post
-
(int|WP_Post) (可选) Post ID或WP_Post对象。默认值为全局$post。
返回
(string)
源码
更新日志
版本 | 描述 |
---|---|
0.71 | 开始引入 |
使用示例
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>
应转义
get_the_title
超级管理员和管理员可以在标题字段中输入任意HTML,但这并不能防止出现问题,例如:
一个流氓管理员添加了一个带有恶意的javscript的脚本标签
一个黑客通过漏洞设法改变标题
一个被破坏的插件使用一个过滤器来改变标题
一个被破坏的插件允许它被改变
黑客闯入Redis/APC/Memcached并修改缓存
基于文件的缓存已被破坏
所有这些都与转义无关,转义可以确保输出的内容符合您的预期。这并不意味着你不能让用户把HTML放在那里,只要你指定允许哪些标签
要安全显示标题,请执行以下操作:
echo esc_html( get_the_title() );
如果希望标题包含HTML标记:
echo wp_kses_post( get_the_title() );
打印当前文章的标题
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>';
get_the_title
在返回值之前被过滤。如果您正在检查文章标题的原始值,那么对于空标题,您可能会得到一个“untitled”字符串值,具体取决于博客的区域设置。要获取文章标题的原始值,请使用get_post
并访问其post_title
属性