WordPress开发中用于标题显示的相关函数使用解析
single_cat_title()函数
single_cat_title()函数,日常中我们很少会用到,但这个函数会给我们解决很多问题,诸如当前页面的目录、标签,该函数不依附于WordPress主循环中,也不能放入主循环中使用。
描述
获取当前页面的分类、标签。
<?phpsingle_cat_title($prefix,$display);?>
- $prefix:用于设置在标题之前显示的内容。
- $display:用于设置是直接显示还是返回到变量。
实例
在此摘取WordPress2011默认主题中,category.php文件第18行左右位置的代码
<?php
printf(__('CategoryArchives:%s','twentyeleven'),'<span>'.single_cat_title('',false).'</span>');
?>
get_the_title和the_title
get_the_title和the_title两个函数用来在文章页面显示文章标题的函数,之所以将两个函数合并到一篇文章里面去是因为这两个函是一个实现,只不过the_title默认直接显示,get_the_title默认返回字符串,如果你对此心存疑惑,那请你往下看。
函数详解
get_the_title和the_title这两个函数主要用于在循环中显示当前文章的标题,请注意the_title这个函数必须使用在循环中。
两者的区别在于,get_the_title仅能以字符串形式返回文章标题,而the_title可以设置标题前后的自定义字符,以及是显示还是返回字符串。
the_title函数使用、参数详解
<?phpthe_title($before,$after,$echo);?>
- $before标题前的字符
- $after标题后的字符
- $echo显示、还是返回字符串,默认为true
the_title示例
<?phpthe_title(‘=>',‘<=');?>
以本文为例,我们将得到以下这样的标题:
‘=>get_the_title和the_title<='
get_the_title函数使用、参数详解
<?php$myTitle=get_the_title($ID);?>
以上代码我们将得到文章标题的变量$myTitle;
$ID用于设置文章ID,当然在循环中我们可以省略此参数。
get_the_title示例
<?php $myTitle=get_the_title($ID); echo$mytitle.'【标题演示】'; ?>
我们将得到
get_the_title和the_title【标题演示】
总结
说了这么多,不知道对您是否有所帮助?
总的来说the_title是get_the_title的更高一级封装。就像在wp_title中说的那样,更高级封装,虽然使用起来简单,但能折腾花样相对少了点。
下面是该两个函数的源代码
the_title函数声明
该函数位于wp-include/post-template.php文件的43–55行左右的位置
<?php
/**
*Displayorretrievethecurrentposttitlewithoptionalcontent.
*
*@since0.71
*
*@paramstring$beforeOptional.Contenttoprependtothetitle.
*@paramstring$afterOptional.Contenttoappendtothetitle.
*@parambool$echoOptional,defaulttotrue.Whethertodisplayorreturn.
*@returnnull|stringNullonnotitle.Stringif$echoparameterisfalse.
*/
functionthe_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行左右的位置
<?php
/**
*Retrieveposttitle.
*
*Ifthepostisprotectedandthevisitorisnotanadmin,then"Protected"
*willbedisplayedbeforetheposttitle.Ifthepostisprivate,then
*"Private"willbelocatedbeforetheposttitle.
*
*@since0.71
*
*@paramint$idOptional.PostID.
*@returnstring
*/
functionget_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);
}elseif(isset($post->post_status)&&'private'==$post->post_status){
$private_title_format=apply_filters('private_title_format',__('Private:%s'));
$title=sprintf($private_title_format,$title);
}
}
returnapply_filters('the_title',$title,$id);
}
?>