自定义标头

自定义标题 允许站点所有者将自己的“标题”图像上传到其站点,可以将其放置在某些页面的顶部。这些可以通过用户通过视觉编辑器在 外观>标题 管理面板的部分。您也可以将文本放在标题下方或顶部。为了支持流体布局和响应式设计,这些标头也可能是灵活的。使用标题将其置于主题get_custom_header(),但必须首先将它们添加到您的functions.php使用add_theme_support()。自定义标题是 选修的。

要设置带有文本的基本,灵活的自定义标头,您将包括以下代码:

<?php
function themename_custom_header_setup() {
	$args = array(
		'default-image'      => get_template_directory_uri() . 'img/default-image.jpg',
		'default-text-color' => '000',
		'width'              => 1000,
		'height'             => 250,
		'flex-width'         => true,
		'flex-height'        => true,
	);
	add_theme_support( 'custom-header', $args );
}
add_action( 'after_setup_theme', 'themename_custom_header_setup' );

after_setup_theme 使用挂钩,以便在加载主题后注册自定义标头。

什么是自定义标题?

当您在主题中启用自定义标题时,用户可以使用WordPress主题Customizer更改其标题图像。这为用户提供了对其网站外观的更多控制和灵活性。

将自定义标头支持添加到您的主题

要启用主题中的自定义标题,请在您的主题中添加以下内容functions.php文件:

add_theme_support( 'custom-header' );

启用自定义标头时,您可以通过将参数传递到add_theme_support()功能。

您可以将特定的配置选项传递给add_theme_support使用数组的功能:

<?php
function themename_custom_header_setup() {
	$defaults = array(
		// Default Header Image to display.
		'default-image'          => get_template_directory_uri() . '/images/headers/default.jpg',
		// Display the header text along with the image.
		'header-text'            => false,
		// Header text color default.
		'default-text-color'     => '000',
		// Header image width (in pixels).
		'width'                  => 1000,
		// Header image height (in pixels).
		'height'                 => 198,
		// Header image random rotation default.
		'random-default'         => false,
		// Enable upload of image file in admin.
		'uploads'                => false,
		// Function to be called in theme head section.
		'wp-head-callback'       => 'wphead_cb',
		// Function to be called in preview page head section.
		'admin-head-callback'    => 'adminhead_cb',
		// Function to produce preview markup in the admin screen.
		'admin-preview-callback' => 'adminpreview_cb',
	);
}
add_action( 'after_setup_theme', 'themename_custom_header_setup' );

灵活的标头图像

如果阵列中未包含弹性高或屈曲宽度,则高度和宽度将为固定尺寸。如果包括弹性高和屈曲宽度,则将按建议的尺寸使用高度和宽度。

标题文本

默认情况下,用户将可以选择是否在图像上显示标题文本。没有选择将标题文本强制在用户上,但是如果要完全删除标题文本,则可以将“标题文本”设置为参数中的“ false”。这将删除标题文本和切换它的选项。

例子

设置自定义标题图像

当用户首先安装主题时,您可以包括一个默认标头,该标头将在他们选择自己的标题之前选择。这使用户可以更快地设置主题并使用默认图像,直到他们准备上传自己的主题为止。

设置默认标头图像980px宽度和60px高度:

<?php
$header_info = array(
	'width'         => 980,
	'height'        => 60,
	'default-image' => get_template_directory_uri() . '/images/sunset.jpg',
);
add_theme_support( 'custom-header', $header_info );

$header_images = array(
	'sunset' => array(
		'url'           => get_template_directory_uri() . '/images/sunset.jpg',
		'thumbnail_url' => get_template_directory_uri() . '/images/sunset_thumbnail.jpg',
		'description'   => 'Sunset',
	),
	'flower' => array(
		'url'           => get_template_directory_uri() . '/images/flower.jpg',
		'thumbnail_url' => get_template_directory_uri() . '/images/flower_thumbnail.jpg',
		'description'   => 'Flower',
	),
);
register_default_headers( $header_images );

不要忘了打电话 register_default_headers() 注册默认图像。在此示例中sunset.jpg是默认图像,flower.jpg是定制器中的替代选择。

从管理屏幕上单击 外观>标题 在Customizer中显示标头图菜单。请注意,在 add_theme_support() 显示为建议的大小,并且flower.jpg显示为可选选项。

使用灵活的标头

默认情况下,用户将必须裁剪其上传的任何图像以适合您指定的宽度和高度。但是,您可以让用户通过指定“ flex tidth”和“ flex-height”为true来上传任何高度和宽度的图像。这将使用户上传新照片时跳过裁剪步骤。

设置灵活的标头:

<?php
$args = array(
	'flex-width'    => true,
	'width'         => 980,
	'flex-height'   => true,
	'height'        => 200,
	'default-image' => get_template_directory_uri() . '/images/header.jpg',
);
add_theme_support( 'custom-header', $args );

更新您的header.php归档到:

<img alt="" src="<?php header_image(); ?>" width="<?php echo absint( get_custom_header()->width ); ?>" height="<?php echo absint( get_custom_header()->height ); ?>">

显示自定义标头

显示自定义标题,功能 get_header_image() 检索标题图像。 get_custom_header() 获取自定义标题数据。
例如。下面显示了如何使用自定义标头图像在主题中显示标题。以下代码进入header.php文件。

<?php if ( get_header_image() ) : ?>
	<div id="site-header">
		<a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home">
			<img src="<?php header_image(); ?>" width="<?php echo absint( get_custom_header()->width ); ?>" height="<?php echo absint( get_custom_header()->height ); ?>" alt="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>">
		</a>
	</div>
<?php endif; ?>

向后兼容

自定义标头在WordPress 3.4及以上支持。如果您希望主题支持超过3.4的WordPress安装,则可以使用以下代码而不是add_theme_support( ‘custom-header’);

<?php
global $wp_version;
if ( version_compare( $wp_version, '3.4', '>=' ) ) :
	add_theme_support( 'custom-header' );
else :
	add_custom_image_header( $wp_head_callback, $admin_head_callback );
endif;

功能参考

By zhuon

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注