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 相关文章推荐
一个域名查询的程序
Oct 09 PHP
深入解析PHP中逗号与点号的区别
Aug 05 PHP
修改apache配置文件去除thinkphp url中的index.php
Jan 17 PHP
页面利用渐进式JPEG来提升用户体验度
Dec 01 PHP
PHP实现通用alert函数的方法
Mar 11 PHP
CodeIgniter钩子用法实例详解
Jan 20 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
Mar 14 PHP
php简单实现sql防注入的方法
Apr 22 PHP
PHP5.6新增加的可变函数参数用法分析
Aug 25 PHP
PHP长连接实现与使用方法详解
Feb 11 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
May 20 PHP
PHP8.0新功能之Match表达式的使用
Jul 19 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 xml实例 留言本
2009/03/20 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
PHP通过插入mysql数据来实现多机互锁实例
2014/11/05 PHP
php实现图片局部打马赛克的方法
2015/02/11 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
php转换上传word文件为PDF的方法【基于COM组件】
2019/06/10 PHP
YII2框架中behavior行为的理解与使用方法示例
2020/03/13 PHP
给页面渲染时间加速 干掉Dom Level 0 Event
2012/12/19 Javascript
js获取select选中的option的text示例代码
2013/12/19 Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
2014/05/11 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
jQuery.parseHTML() 函数详解
2017/01/09 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
2017/03/24 jQuery
node.js中http模块和url模块的简单介绍
2017/10/06 Javascript
vue中使用protobuf的过程记录
2018/10/26 Javascript
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
微信小程序template模板与component组件的区别和使用详解
2019/05/22 Javascript
原生js实现购物车功能
2020/09/23 Javascript
[01:02:48]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Liquid
2018/04/03 DOTA
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
详解python中的json和字典dict
2018/06/22 Python
python利用小波分析进行特征提取的实例
2019/01/09 Python
Django框架用户注销功能实现方法分析
2019/05/28 Python
Python matplotlib模块及柱状图用法解析
2020/08/10 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
设计毕业生简历中的自我评价
2013/10/01 职场文书
汽车专业学生自我评价
2014/01/19 职场文书
医学生自我鉴定范文
2014/03/26 职场文书
工作证明范本(2篇)
2014/09/14 职场文书
2014年大学生党员评议表自我评价
2014/09/20 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
体育运动会广播稿
2014/10/05 职场文书
世界红十字日活动总结
2015/02/10 职场文书
教师创先争优承诺书
2015/04/27 职场文书
工作调动申请报告
2015/05/18 职场文书
Python实现随机生成迷宫并自动寻路
2021/06/13 Python