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中使用与Perl兼容的正则表达式
Nov 26 PHP
php header Content-Type类型小结
Jul 03 PHP
php+js实现图片的上传、裁剪、预览、提交示例
Aug 27 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 PHP
PHP读取汉字的点阵数据
Jun 22 PHP
WordPress开发中用于标题显示的相关函数使用解析
Jan 07 PHP
PHP访问数据库集群的方法小结
Mar 14 PHP
php mongodb操作类 带几个简单的例子
Aug 25 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
Jan 11 PHP
PHP的PDO预定义常量讲解
Jan 24 PHP
php实现的生成排列算法示例
Jul 25 PHP
Laravel Eloquent分表方法并使用模型关联的实现
Nov 25 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
php的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
JavaScript移除数组元素减少长度的方法
2013/09/05 Javascript
jquery ajax 局部刷新小案例
2014/02/08 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
2020/09/01 Javascript
JS+CSS实现闪烁字体效果代码
2016/04/05 Javascript
浅谈js数据类型判断与数组判断
2016/08/29 Javascript
javascript实现根据汉字获取简拼
2016/09/25 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
Angular2开发环境搭建教程之VS Code
2017/12/15 Javascript
解决vue跨域axios异步通信问题
2019/04/17 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
优雅的使用javascript递归画一棵结构树示例代码
2019/09/22 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
[05:06]DOTA2-DPC中国联赛 正赛 VG vs Magma选手采访
2021/03/11 DOTA
[06:57]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD 选手采访
2021/03/11 DOTA
Python使用百度API上传文件到百度网盘代码分享
2014/11/08 Python
python根据京东商品url获取产品价格
2015/08/09 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
2018/06/13 Python
python3用PIL把图片转换为RGB图片的实例
2019/07/04 Python
Python实现手绘图效果实例分享
2020/07/22 Python
python 监控logcat关键字功能
2020/09/04 Python
python 实现图片裁剪小工具
2021/02/02 Python
锐步美国官方网站:Reebok美国
2018/01/10 全球购物
英国的潮牌鞋履服饰商店:size?
2019/03/26 全球购物
Eclipse面试题
2014/03/22 面试题
优秀共产党员先进事迹材料
2014/05/06 职场文书
2015年计生协会工作总结
2015/04/24 职场文书
毕业典礼主持词
2015/06/29 职场文书
《雪地里的小画家》教学反思
2016/02/16 职场文书
2019年公司快递收发管理制度模板
2019/11/20 职场文书
使用python向MongoDB插入时间字段的操作
2021/05/18 Python
JavaScript实现优先级队列
2021/12/06 Javascript