WordPress主题制作中自定义头部的相关PHP函数解析


Posted in PHP onJanuary 08, 2016

header_image()
header_image() 函数是 WordPress 自定顶部图像的标准接口函数,该函数可以自动判断后台设置,并返回字符串形式的用户自定义顶部图像地址。本文主要涉及该函数的详解及使用。

【Display header image path.】 即,显示顶部图像地址。
使用

<img src="<?php header_image(); ?>" width="<?php echo $header_image_width; ?>" height="<?php echo $header_image_height; ?>" alt="" />
函数声明源代码
function header_textcolor() {
 echo get_header_textcolor();
}
function get_header_image() {
 $url = get_theme_mod( 'header_image', get_theme_support( 'custom-header', 'default-image' ) );
 
 if ( 'remove-header' == $url )
 return false;
 
 if ( is_random_header_image() )
 $url = get_random_header_image();
 
 if ( is_ssl() )
 $url = str_replace( 'http://', 'https://', $url );
 else
 $url = str_replace( 'https://', 'http://', $url );
 
 return esc_url_raw( $url );
}

get_custom_header 自定义顶部
get_custom_header 函数是 WordPress 3.4 送给我们的新礼物,该函数的出现是为了更好的集成和封装顶部的使用,本文主要对 get_custom_header 这个函数进行详解、以及如何在 WordPress 3.4 版本的主题中集成顶部功能。

请注意,根据本文折腾你的主题时,请确保你的 WordPress 已经升级到 3.4版本。

get_custom_header 意义详解
自定义顶部目前大部分主题主要用到的还只是两个功能 1.自定义顶部图像 2.自定义顶部样式
具体的效果你可以看一下 默认主题 twenty eleven ,或者我的另一个博客 悠悠我心
本函数是 WP 3.4 版本后才出现的一个内置函数,主要用于将用户设置的顶部的各项参数以对象(object)的形式返回。
单单说这么句屁话,也许你还不明白,想要明白的话,请往下看。
请注意本函数与get_header()有着本质的区别。

函数使用实例
下面的例子来自于 默认主题 twenty eleven 中 header.php 文件
PHP 代码:

//判断是否存在该函数,以便兼容老版本
if ( function_exists( 'get_custom_header' ) ) {
//get_custom_header()->width 调用带向 width 属性
$header_image_width = get_custom_header()->width;
//get_custom_header()->height 调用带向 height 属性
$header_image_height = get_custom_header()->height;
} else {//兼容老版本的代码
$header_image_width = HEADER_IMAGE_WIDTH;
$header_image_height = HEADER_IMAGE_HEIGHT;
}

综合使用详解
以下主要援引官方文档解释 自定义顶部

//打开主题自定义顶部支持
add_theme_support( 'custom-header' );
 
$headarg = array(//将设置打包成数组
 'default-image'     => '',
 'random-default'     => false,
 'width'         => 0,
 'height'         => 0,
 'flex-height'      => false,
 'flex-width'       => false,
 'default-text-color'   => '',
 'header-text'      => true,
 'uploads'        => true,
 'wp-head-callback'    => '',
 'admin-head-callback'  => '',
 'admin-preview-callback' => '',
);
//将数组中的设置添加到自定义顶部上
add_theme_support( 'custom-header', $headarg );

自定义顶部图像

//打开主题自定义顶部支持
add_theme_support( 'custom-header' );
 
$headarg = array(//将设置打包成数组
 'default-image'     => '',
 'random-default'     => false,
 'width'         => 0,
 'height'         => 0,
 'flex-height'      => false,
 'flex-width'       => false,
 'default-text-color'   => '',
 'header-text'      => true,
 'uploads'        => true,
 'wp-head-callback'    => '',
 'admin-head-callback'  => '',
 'admin-preview-callback' => '',
);
//将数组中的设置添加到自定义顶部上
add_theme_support( 'custom-header', $headarg );

自适应顶部图像设置

$args = array(
 'flex-width'  => true,//自适应高度
 'width'     => 980,
 'flex-width'  => true,//自适应宽度
 'height'    => 200,
 'default-image' => get_template_directory_uri() . '/images/header.jpg',
);
add_theme_support( 'custom-header', $args );

自定义顶部图像的调用

<img 
  src="<?php header_image(); ?>" 
  height="<?php echo get_custom_header()->height; ?>" 
  width="<?php echo get_custom_header()->width; ?>" 
  alt="" 
/>
PHP 相关文章推荐
如何使用PHP获取网络上文件
Oct 09 PHP
php 删除无限级目录与文件代码共享
Nov 22 PHP
php 从数据库提取二进制图片的处理代码
Sep 09 PHP
php jquery 多文件上传简单实例
Dec 23 PHP
PHP在网页中动态生成PDF文件详细教程
Jul 05 PHP
大家都应该掌握的PHP关联数组使用技巧
Dec 25 PHP
php mysql操作mysql_connect连接数据库实例详解
Dec 26 PHP
php文件上传及下载附带显示文件及目录功能
Apr 27 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
Jun 06 PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
Mar 18 PHP
java解析json方法总结
May 16 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
Oct 15 PHP
微信开发之网页授权获取用户信息(二)
Jan 08 #PHP
详解WordPress开发中get_header()获取头部函数的用法
Jan 08 #PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
Jan 08 #PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
Jan 08 #PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
Jan 08 #PHP
理解PHP中的Session及对Session有效期的控制
Jan 08 #PHP
PHP实现搜索地理位置及计算两点地理位置间距离的实例
Jan 08 #PHP
You might like
oracle资料库函式库
2006/10/09 PHP
有关 PHP 和 MySQL 时区的一点总结
2008/03/26 PHP
php 正确解码javascript中通过escape编码后的字符
2010/01/28 PHP
纯php打造的tab选项卡效果代码(不用js)
2010/12/29 PHP
PHP文件与目录操作示例
2016/12/24 PHP
Yii2框架实现登录、退出及自动登录功能的方法详解
2017/10/24 PHP
thinkphp5.1 框架钩子和行为用法实例分析
2020/05/25 PHP
javascript tips提示框组件实现代码
2010/11/19 Javascript
上传文件返回的json数据会被提示下载问题解决方案
2014/12/03 Javascript
JavaScript把数组作为堆栈使用的方法
2015/03/20 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
2015/08/12 Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
2016/01/22 Javascript
JavaScript使用Range调色及透明度实例
2016/09/25 Javascript
JS实现的数字格式化功能示例
2017/02/10 Javascript
js+html5实现页面可刷新的倒计时效果
2017/07/15 Javascript
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
深入理解JavaScript和TypeScript中的class
2018/04/22 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
2019/09/02 Javascript
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
Python+tkinter模拟“记住我”自动登录实例代码
2018/01/16 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
Python自动化测试基础必备知识点总结
2021/02/07 Python
Farfetch台湾官网:奢侈品牌时尚购物平台
2019/06/17 全球购物
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
2012/05/23 面试题
中学老师的自我评价
2013/11/07 职场文书
学生思想表现的评语
2014/01/30 职场文书
五四青年节的活动方案
2014/08/20 职场文书
防灾减灾标语
2014/10/07 职场文书
党员批评与自我批评思想汇报
2014/10/08 职场文书
奖励申请报告范文
2015/05/15 职场文书
想创业成功,需要掌握这些要点
2019/12/06 职场文书
Oracle 数据仓库ETL技术之多表插入语句的示例详解
2021/04/12 Oracle
Redis官方可视化工具RedisInsight安装使用教程
2022/04/19 Redis