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 相关文章推荐
基于mysql的论坛(5)
Oct 09 PHP
phpMyAdmin 链接表的附加功能尚未激活的问题
Aug 01 PHP
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
May 19 PHP
php UBB 解析实现代码
Nov 27 PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
Jul 01 PHP
深入phpMyAdmin的安装与配置的详细步骤
May 07 PHP
php计算程序运行时间的简单例子分享
May 10 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
Sep 09 PHP
Codeigniter(CI)框架分页函数及相关知识
Nov 03 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
Oct 16 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
Sep 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&amp;MYSQL服务器配置说明
2006/10/09 PHP
PHP开发需要注意的安全问题
2010/09/01 PHP
PHP中文乱码解决方案
2015/03/05 PHP
基础的WordPress插件制作教程
2015/11/24 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
ASP.NET中基于JQUERY的高性能的TreeView补充
2011/02/23 Javascript
ajax与302响应代码测试
2013/10/23 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
2015/06/09 Javascript
JS实现三个层重叠点击互相切换的方法
2015/10/06 Javascript
Jquery中使用show()与hide()方法动画显示和隐藏图片
2015/10/08 Javascript
jquery获取文档高度和窗口高度汇总
2016/01/25 Javascript
Bootstrap CSS组件之分页(pagination)和翻页(pager)
2016/12/17 Javascript
轻松理解JavaScript之AJAX
2017/03/15 Javascript
微信小程序实现自定义picker选择器弹窗内容
2020/05/26 Javascript
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
在微信小程序中保存网络图片
2019/02/12 Javascript
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
JavaScript forEach中return失效问题解决方案
2020/06/01 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
Python格式化字符串f-string概览(小结)
2019/06/18 Python
python数据类型之间怎么转换技巧分享
2019/08/20 Python
python3 requests库实现多图片爬取教程
2019/12/18 Python
Python namedtuple命名元组实现过程解析
2020/01/08 Python
英国护肤品购物网站:Beauty Expert
2016/08/19 全球购物
加拿大最大的钻石商店:Peoples Jewellers
2018/01/01 全球购物
医学院校毕业生自荐信范文
2014/01/01 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
总经理检讨书
2014/09/15 职场文书
2014年女职工工作总结
2014/11/27 职场文书
python 用递归实现通用爬虫解析器
2021/04/16 Python
Nginx 反向代理解决跨域问题多种情况分析
2022/01/18 Servers
java代码实现空间切割
2022/01/18 Java/Android
Pandas实现DataFrame的简单运算、统计与排序
2022/03/31 Python