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 相关文章推荐
构建简单的Webmail系统
Oct 09 PHP
mac下使用brew配置环境的步骤分享
May 23 PHP
破解.net程序(dll文件)编译和反编译方法
Jan 31 PHP
PHP文件大小格式化函数合集
Mar 10 PHP
thinkphp验证码显示不出来的解决方法
Mar 29 PHP
Smarty变量调节器失效的解决办法
Aug 20 PHP
php使用pdo连接mssql server数据库实例
Dec 25 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
Jan 19 PHP
PHP模板引擎Smarty中的保留变量用法分析
Apr 11 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
Mar 31 PHP
PHP堆栈调试操作简单示例
Jun 15 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 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
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
php按单词截取字符串的方法
2015/04/07 PHP
PHP模板引擎Smarty中的保留变量用法分析
2016/04/11 PHP
php使用Jpgraph创建折线图效果示例
2017/02/15 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
用js+xml自动生成表格的东西
2006/12/21 Javascript
jqPlot Option配置对象详解
2009/07/25 Javascript
jQuery 方法大全方便学习参考
2010/02/25 Javascript
js下写一个事件队列操作函数
2010/07/19 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
基于JavaScript实现 获取鼠标点击位置坐标的方法
2013/04/12 Javascript
jQuery操作input值的各种方法总结
2013/11/21 Javascript
javascript特殊用法示例介绍
2013/11/29 Javascript
无刷新上传文件并返回自定义值
2015/06/11 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
vue中倒计时组件的实例代码
2018/07/06 Javascript
Vue实现简易计算器
2020/02/25 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
微信小程序picker组件两列关联使用方式
2020/10/27 Javascript
express异步函数异常捕获示例详解
2020/11/30 Javascript
python字符串连接方法分析
2016/04/12 Python
浅析PyTorch中nn.Module的使用
2019/08/18 Python
python socket 聊天室实例代码详解
2019/11/14 Python
Pycharm学生免费专业版安装教程的方法步骤
2020/09/24 Python
python解决OpenCV在读取显示图片的时候闪退的问题
2021/02/23 Python
澳大利亚波希米亚风时尚品牌:Tree of Life
2019/09/15 全球购物
戴森比利时官方网站:Dyson BE
2020/10/03 全球购物
铭立家具面试题
2012/12/06 面试题
软件测试工程师面试问题精选
2016/10/28 面试题
英文请假条
2014/04/11 职场文书
美容院管理规章制度
2015/08/05 职场文书
员工聘用合同范本
2015/09/21 职场文书
基于Java的MathML转图片的方法(示例代码)
2021/06/23 Java/Android
nginx请求限制配置方法
2021/07/09 Servers
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
2022/04/24 Python
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技