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批量缩放图片的代码[ini参数控制]
Feb 11 PHP
遭遇php的in_array低性能问题
Sep 17 PHP
php中静态类与静态变量用法的区别分析
Jan 15 PHP
PHP内核学习教程之php opcode内核实现
Jan 27 PHP
PHP模板引擎Smarty内置变量调解器用法详解
Apr 11 PHP
php实现三级级联下拉框
Apr 17 PHP
php无限级分类实现方法分析
Oct 19 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
Dec 09 PHP
PHP中OpenSSL加密问题整理
Dec 14 PHP
laravel异步监控定时调度器实例详解
Jun 21 PHP
php接口隔离原则实例分析
Nov 11 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+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
javascript this用法小结
2008/12/19 Javascript
javascript 异常处理使用总结
2009/06/21 Javascript
javascript 面向对象全新理练之继承与多态
2009/12/03 Javascript
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
Javascript学习笔记一 之 数据类型
2010/12/15 Javascript
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
jQuery中val()方法用法实例
2014/12/25 Javascript
浅析$.getJSON异步请求和同步请求
2016/06/06 Javascript
html+js实现简单的计算器代码(加减乘除)
2016/07/12 Javascript
AngularJS表格添加序号的方法
2017/03/03 Javascript
使用javaScript实现鼠标拖拽事件
2020/04/03 Javascript
除Console.log()外更多的Javascript调试命令
2018/01/24 Javascript
vue中promise的使用及异步请求数据的方法
2018/11/08 Javascript
JS删除String里某个字符的方法
2021/01/06 Javascript
vue的keep-alive用法技巧
2019/08/15 Javascript
js实现圆形显示鼠标单击位置
2020/02/11 Javascript
JavaScript常用工具函数库汇总
2020/09/17 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
2020/09/22 Javascript
JavaScript代码实现微博批量取消关注功能
2021/02/05 Javascript
[01:03:36]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第二场 1月26日
2021/03/11 DOTA
Python学习笔记之抓取某只基金历史净值数据实战案例
2019/06/03 Python
python 同时读取多个文件的例子
2019/07/16 Python
使用Python脚本从文件读取数据代码实例
2020/01/19 Python
详解python中groupby函数通俗易懂
2020/05/14 Python
python3.9实现pyinstaller打包python文件成exe
2020/12/13 Python
selenium+headless chrome爬虫的实现示例
2021/01/08 Python
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
为什么需要版本控制?
2013/08/08 面试题
临床医学专业毕业生的自我评价
2013/10/17 职场文书
学生励志演讲稿
2014/01/06 职场文书
四风查摆剖析材料
2014/10/10 职场文书
少先队辅导员事迹材料
2014/12/24 职场文书
酒店辞职信怎么写
2015/02/27 职场文书
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫