> WordPress开发手册 > get_custom_header

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 );

自定义顶部图像

$args = array (
		// 自定义顶部图像的设置数组
		'width' => 980,
		'height' => 60,
		'default-image' => get_template_directory_uri () . '/images/header.jpg' 
);
// 添加设置
add_theme_support ( 'custom-header', $args );

添加自定义顶部图像并允许上传新图像

$args = array (
		'width' => 980,
		'height' => 60,
		'default-image' => get_template_directory_uri () . '/images/header.jpg',
		'uploads' => true  // 这是关键、其他的同上
);
add_theme_support ( 'custom-header', $args );

自适应顶部图像设置

$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="" 
/>