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 相关文章推荐
Windows下PHP5和Apache的安装与配置
Sep 05 PHP
构建简单的Webmail系统
Oct 09 PHP
PHP中time(),date(),mktime()区别介绍
Sep 28 PHP
php setcookie函数的参数说明及其用法
Apr 20 PHP
fckeditor上传文件按日期存放及重命名方法
May 22 PHP
用PHP代码给图片加水印
Jul 01 PHP
使用XHGui来测试PHP性能的教程
Jul 03 PHP
PHP 数组基本操作小结(推荐)
Jun 13 PHP
PHP环境搭建(php+Apache+mysql)
Nov 14 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
Feb 04 PHP
php封装db类连接sqlite3数据库的方法实例
Dec 19 PHP
PHP+ajax实现获取新闻数据简单示例
May 08 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 HTML代码串截取代码
2008/12/29 PHP
Godaddy空间Zend Optimizer升级方法
2010/05/10 PHP
php中static静态变量的使用方法详解
2010/06/04 PHP
php根据分类合并数组的方法实例详解
2013/11/06 PHP
php中自定义函数dump查看数组信息类似var_dump
2014/01/27 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
2014/04/28 PHP
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
2014/06/21 Servers
访问编码后的中文URL返回404错误的解决方法
2014/08/20 PHP
Codeigniter控制器controller继承问题实例分析
2016/01/19 PHP
php+Ajax处理xml与json格式数据的方法示例
2019/03/04 PHP
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
2010/05/04 Javascript
js 弹出菜单/窗口效果
2011/10/30 Javascript
DOM和XMLHttpRequest对象的属性和方法整理
2012/01/04 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
2015/03/23 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
基于jQuery滑动杆实现购买日期选择效果
2015/09/15 Javascript
Javascript中replace()小结
2015/09/30 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
PHPStorm中如何对nodejs项目进行单元测试详解
2019/02/28 NodeJs
利用node 判断打开的是文件 还是 文件夹的实例
2019/06/10 Javascript
小程序实现多个选项卡切换
2020/06/19 Javascript
python局部赋值的规则
2013/03/07 Python
Python中的高级数据结构详解
2015/03/27 Python
使用Python3中的gettext模块翻译Python源码以支持多语言
2015/03/31 Python
python实现一次创建多级目录的方法
2015/05/15 Python
python实现稀疏矩阵示例代码
2017/06/09 Python
Python中extend和append的区别讲解
2019/01/24 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
Python3简单实现串口通信的方法
2019/06/12 Python
Python使用Pandas读写Excel实例解析
2019/11/19 Python
详解Python中import机制
2020/09/11 Python
27个经典Linux面试题及答案,你知道几个?
2014/03/11 面试题
合伙经营协议书
2014/04/18 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书
python热力图实现的完整实例
2022/06/25 Python