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解析json数据实例
Aug 19 PHP
php生成随机颜色的方法
Nov 13 PHP
php单态设计模式(单例模式)实例
Nov 18 PHP
CodeIgniter删除和设置Cookie的方法
Apr 07 PHP
smarty学习笔记之常见代码段用法总结
Mar 19 PHP
php+ajax注册实时验证功能
Jul 20 PHP
PHP 断点续传实例详解
Nov 11 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
Oct 16 PHP
PHP实现微信公众号验证Token的示例代码
Dec 16 PHP
PHP使用PDO 连接与连接管理操作实例分析
Apr 21 PHP
tp5.1框架数据库子查询操作实例分析
May 26 PHP
关于PHP中interface的用处详解
Jul 26 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 程序授权验证开发思路
2009/07/09 PHP
PHP如何利用P3P实现跨域
2013/08/24 PHP
PHP中应该避免使用同名变量(拆分临时变量)
2015/04/03 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
2019/04/10 PHP
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
2009/11/14 Javascript
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
使用jQuery将多条数据插入模态框的实现代码
2014/10/08 Javascript
纯javascript实现的小游戏《Flappy Pig》实例
2015/07/27 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
AngularJS入门教程之数据绑定原理详解
2016/11/02 Javascript
利用Javascript裁剪图片并存储的简单实现
2017/03/13 Javascript
jquery实现简单实用的轮播器
2017/05/23 jQuery
JavaScript标准对象_动力节点Java学院整理
2017/06/27 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
2018/03/21 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
vue组件三大核心概念图文详解
2019/05/30 Javascript
从零使用TypeScript开发项目打包发布到npm
2020/02/14 Javascript
vue实现简单全选和反选功能
2020/09/15 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
Python函数学习笔记
2008/10/07 Python
浅谈python内置变量-reversed(seq)
2017/06/21 Python
Python读取Word(.docx)正文信息的方法
2018/03/15 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
2019/04/03 Python
Python API 自动化实战详解(纯代码)
2019/06/11 Python
Python使用多进程运行含有任意个参数的函数
2020/05/02 Python
浅谈python 类方法/静态方法
2020/09/18 Python
请问如下代码执行后a和b的值分别是什么
2016/05/05 面试题
电气工程和自动化自荐信范文
2013/12/25 职场文书
餐饮管理自我介绍信
2014/01/15 职场文书
低碳环保标语
2014/06/12 职场文书
新闻发布会活动策划方案
2014/09/15 职场文书
世界遗产导游词
2015/02/13 职场文书
2015年后勤工作总结范文
2015/04/08 职场文书
文艺部部长竞选稿
2015/11/21 职场文书
2016秋季田径运动会广播稿
2015/12/21 职场文书
通过shell脚本对mysql的增删改查及my.cnf的配置
2021/07/07 MySQL