> WordPress开发手册 > the_title

get_the_title and the_title


get_the_title 和 the_title 两个函数用来在文章页面显示文章标题的函数,之所以将两个函数合并到一篇文章里面去是因为这两个函是一个实现,只不过 the_title 默认直接显示,get_the_title 默认返回字符串,如果你对此心存疑惑,那请你往下看。

函数详解

get_the_titlethe_title这两个函数主要用于在循环中显示当前文章的标题,请注意 the_title 这个函数必须使用在循环中。
两者的区别在于,get_the_title仅能以字符串形式返回文章标题,而 the_title 可以设置标题前后的自定义字符,以及是显示还是返回字符串。

the_title 函数使用、参数详解

the_title( $before, $after, $echo );
  1. $before标题前的字符
  2. $after标题后的字符
  3. $echo显示、还是返回字符串,默认为true

the_title示例

the_title( ‘=>’, ‘<=’ );

以本文为例,我们将得到以下这样的标题:

‘=>get_the_title 和 the_title

get_the_title 函数使用、参数详解

$myTitle =  get_the_title($ID);

以上代码我们将得到文章标题的变量$myTitle;
$ID 用于设置文章 ID ,当然在循环中我们可以省略此参数。

get_the_title 示例

$myTitle =  get_the_title($ID); 
echo $mytitle.'【标题演示】';

我们将得到

get_the_title 和 the_title【标题演示】

the_title 函数声明

该函数位于 wp-include/post-template.PHP 文件的 43 – 55行左右的位置

/**
 * Display or retrieve the current post title with optional content.
 *
 * @since 0.71
 *
 * @param string $before Optional. Content to prepend to the title.
 * @param string $after Optional. Content to append to the title.
 * @param bool $echo Optional, default to true.Whether to display or return.
 * @return null|string Null on no title. String if $echo parameter is false.
 */
function the_title($before = '', $after = '', $echo = true) {
	$title = get_the_title ();
	if (strlen ( $title ) == 0)
		return;
	$title = $before . $title . $after;
	if ($echo)
		echo $title;
	else
		return $title;
}

get_the_title 函数声明

该函数位于 wp-include/post-template.php 文件的 103 – 118行左右的位置

/**
 * Retrieve post title.
 *
 * If the post is protected and the visitor is not an admin, then "Protected"
 * will be displayed before the post title. If the post is private, then
 * "Private" will be located before the post title.
 *
 * @since 0.71
 *
 * @param int $id Optional. Post ID.
 * @return string
 */
 function get_the_title($id = 0) {
	$post = &get_post ( $id );
	$title = isset ( $post->post_title ) ? $post->post_title : '';
	$id = isset ( $post->ID ) ? $post->ID : ( int ) $id;
	if (! is_admin ()) {
		if (! empty ( $post->post_password )) {
			$protected_title_format = apply_filters ( 'protected_title_format', __ ( 'Protected: %s' ) );
			$title = sprintf ( $protected_title_format, $title );
		} else if (isset ( $post->post_status ) && 'private' == $post->post_status) {
			$private_title_format = apply_filters ( 'private_title_format', __ ( 'Private: %s' ) );
			$title = sprintf ( $private_title_format, $title );
		}
	}
	return apply_filters ( 'the_title', $title, $id );
}