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 相关文章推荐
C# Assembly类访问程序集信息
Jun 13 PHP
PHP5中GD库生成图形验证码(有汉字)
Jul 28 PHP
php利用scws实现mysql全文搜索功能的方法
Dec 25 PHP
yii去掉必填项中星号的方法
Dec 28 PHP
thinkPHP5.0框架引入Traits功能实例分析
Mar 18 PHP
简单实现php上传文件功能
Sep 21 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
May 27 PHP
php和C#的yield迭代器实现方法对比分析
Jul 17 PHP
PHP命名空间定义与用法实例分析
Aug 14 PHP
Yii框架分页技术实例分析
Aug 30 PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 PHP
Apache+PHP+MySQL搭建PHP开发环境图文教程
Aug 06 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
用cookies来跟踪识别用户
2006/10/09 PHP
php 获得汉字拼音首字母的函数
2009/08/01 PHP
php模拟用户自动在qq空间发表文章的方法
2015/01/07 PHP
PHP实现简单搜歌的方法
2015/07/28 PHP
php添加数据到xml文件的简单例子
2016/09/08 PHP
PHP数组式访问接口ArrayAccess用法分析
2017/12/28 PHP
php支付宝系列之电脑网站支付
2018/05/30 PHP
setTimeout和setInterval的区别你真的了解吗?
2011/03/31 Javascript
javascript测试题练习代码
2012/10/10 Javascript
Javascript正则控制文本框只能输入整数或浮点数
2014/09/02 Javascript
js单独获取一个checkbox看其是否被选中
2014/09/22 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
2015/08/28 Javascript
JS中artdialog弹出框控件之提交表单思路详解
2016/04/18 Javascript
Angularjs中UI Router的使用方法
2016/05/14 Javascript
JS中sort函数排序用法实例分析
2016/06/16 Javascript
JavaScript兼容浏览器FF/IE技巧
2016/08/14 Javascript
最实用的jQuery分页插件
2016/10/09 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
2016/11/16 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
Python 专题三 字符串的基础知识
2017/03/19 Python
python 通过 socket 发送文件的实例代码
2018/08/14 Python
Python实现iOS自动化打包详解步骤
2018/10/03 Python
Python功能点实现:函数级/代码块级计时器
2019/01/02 Python
python openpyxl使用方法详解
2019/07/18 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
2019/07/28 Python
使用pandas的box_plot去除异常值
2019/12/10 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
HTML5标签大全
2016/11/23 HTML / CSS
班主任班级寄语大全
2014/04/04 职场文书
神秘岛读书笔记
2015/07/01 职场文书
2015年高中语文教学总结
2015/08/18 职场文书
golang http使用踩过的坑与填坑指南
2021/04/27 Golang
Redis 持久化 RDB 与 AOF的执行过程
2021/11/07 Redis