WordPress开发中用于标题显示的相关函数使用解析


Posted in PHP onJanuary 07, 2016

single_cat_title()函数
single_cat_title()函数,日常中我们很少会用到,但这个函数会给我们解决很多问题,诸如当前页面的目录、标签,该函数不依附于 WordPress 主循环中,也不能放入主循环中使用。

描述
获取当前页面的分类、标签。

<?php single_cat_title($prefix,$display); ?>
  • $prefix :用于设置在标题之前显示的内容。
  • $display :用于设置是直接显示还是返回到变量。

实例
在此摘取 WordPress 2011 默认主题中,category.php 文件 第18行左右位置的代码

<?php
printf( __( 'Category Archives: %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 函数使用、参数详解

<?php the_title( $before, $after, $echo ); ?>
  • $before标题前的字符
  • $after标题后的字符
  • $echo显示、还是返回字符串,默认为true

the_title示例

<?php the_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
/**
 * 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行左右的位置

<?php
/**
 * 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 );
}
?>
PHP 相关文章推荐
基于MySQL分区性能的详细介绍
May 02 PHP
PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
Jun 12 PHP
php跨站攻击实例分析
Oct 28 PHP
Laravel 5框架学习之表单
Apr 08 PHP
PHP整合七牛实现上传文件
Jul 03 PHP
WIFI万能钥匙密码查询接口实例
Sep 28 PHP
php文件上传、下载和删除示例
Aug 28 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
Feb 07 PHP
php进程daemon化的正确实现方法
Sep 06 PHP
laravel 解决ajax异步提交数据,并还回填充表格的问题
Oct 15 PHP
PHP 自动加载类原理与用法实例分析
Apr 14 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
Oct 30 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
Jan 07 #PHP
WordPress中调试缩略图的相关PHP函数使用解析
Jan 07 #PHP
PHP中substr函数字符串截取用法分析
Jan 07 #PHP
PHP中addcslashes与stripcslashes函数用法分析
Jan 07 #PHP
使用php+swoole对client数据实时更新(一)
Jan 07 #PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
Jan 07 #PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
Jan 07 #PHP
You might like
php实现文件编码批量转换
2014/03/10 PHP
PHP SESSION的增加、删除、修改、查看操作
2015/03/20 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
提高网站信任度的技巧
2008/10/17 Javascript
jQuery 获取URL参数的插件
2010/03/04 Javascript
js实现的日期操作类DateTime函数代码
2010/03/16 Javascript
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
文本框文本自动补全效果示例分享
2014/01/19 Javascript
js中arguments,caller,callee,apply的用法小结
2014/01/28 Javascript
ExtJS中设置下拉列表框不可编辑的方法
2014/05/07 Javascript
jQuery实现设置、移除文本框默认值功能
2015/01/13 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
Javascript中的Callback方法浅析
2015/03/15 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
javascript字符串与数组转换汇总
2015/05/26 Javascript
属于你的jQuery提示框(Tip)插件
2016/01/20 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
2016/04/15 Javascript
JS框架之vue.js(深入三:组件1)
2016/09/29 Javascript
vue综合组件间的通信详解
2017/11/06 Javascript
vue 组件中添加样式不生效的解决方法
2018/07/06 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
2018/12/28 Javascript
微信小程序 腾讯地图SDK 获取当前地址实现解析
2019/08/12 Javascript
使用Vue调取接口,并渲染数据的示例代码
2019/10/28 Javascript
webgl实现物体描边效果的方法介绍
2019/11/27 Javascript
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
在Python的Django框架中编写编译函数
2015/07/20 Python
详解Python正则表达式re模块
2019/03/19 Python
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
2019/04/01 Python
解决导入django_filters不成功问题No module named 'django_filter'
2020/07/15 Python
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
2014年环卫工作总结
2014/11/22 职场文书
redis调用二维码时的不断刷新排查分析
2022/04/01 Redis
Github 使用python对copilot做些简单使用测试
2022/04/14 Python
mysql 索引的数据结构为什么要采用B+树
2022/04/26 MySQL