_get_random_header_data()
云策文档标注
概述
_get_random_header_data() 函数用于从主题注册的图片中获取随机头部图像数据。它根据主题设置(如 'random-uploaded-image' 或 'random-default-image')选择图片,并返回包含 URL 和缩略图 URL 的对象。
关键要点
- 函数返回一个对象,包含随机头部图像的 URL 和缩略图 URL。
- 通过 get_theme_mod() 检查主题设置,决定使用上传的图片还是默认图片。
- 使用 array_rand() 从图片数组中随机选择一张图片。
- URL 和缩略图 URL 通过 sprintf() 格式化,以包含模板和样式表目录 URI。
- 如果未找到图片,函数返回一个空的 stdClass 对象。
代码示例
global $_wp_default_headers;
static $_wp_random_header = null;
if ( empty( $_wp_random_header ) ) {
$header_image_mod = get_theme_mod( 'header_image', '' );
$headers = array();
if ( 'random-uploaded-image' === $header_image_mod ) {
$headers = get_uploaded_header_images();
} elseif ( ! empty( $_wp_default_headers ) ) {
if ( 'random-default-image' === $header_image_mod ) {
$headers = $_wp_default_headers;
} else {
if ( current_theme_supports( 'custom-header', 'random-default' ) ) {
$headers = $_wp_default_headers;
}
}
}
if ( empty( $headers ) ) {
return new stdClass();
}
$_wp_random_header = (object) $headers[ array_rand( $headers ) ];
$_wp_random_header->url = sprintf(
$_wp_random_header->url,
get_template_directory_uri(),
get_stylesheet_directory_uri()
);
$_wp_random_header->thumbnail_url = sprintf(
$_wp_random_header->thumbnail_url,
get_template_directory_uri(),
get_stylesheet_directory_uri()
);
}
return $_wp_random_header;注意事项
- 函数使用静态变量 $_wp_random_header 缓存结果,以提高性能。
- 确保主题支持 'custom-header' 功能,否则可能无法正确获取默认图片。
- 相关函数包括 get_uploaded_header_images()、get_theme_mod() 等,用于辅助数据获取。
原文内容
Gets random header image data from registered images in theme.
Source
function _get_random_header_data() {
global $_wp_default_headers;
static $_wp_random_header = null;
if ( empty( $_wp_random_header ) ) {
$header_image_mod = get_theme_mod( 'header_image', '' );
$headers = array();
if ( 'random-uploaded-image' === $header_image_mod ) {
$headers = get_uploaded_header_images();
} elseif ( ! empty( $_wp_default_headers ) ) {
if ( 'random-default-image' === $header_image_mod ) {
$headers = $_wp_default_headers;
} else {
if ( current_theme_supports( 'custom-header', 'random-default' ) ) {
$headers = $_wp_default_headers;
}
}
}
if ( empty( $headers ) ) {
return new stdClass();
}
$_wp_random_header = (object) $headers[ array_rand( $headers ) ];
$_wp_random_header->url = sprintf(
$_wp_random_header->url,
get_template_directory_uri(),
get_stylesheet_directory_uri()
);
$_wp_random_header->thumbnail_url = sprintf(
$_wp_random_header->thumbnail_url,
get_template_directory_uri(),
get_stylesheet_directory_uri()
);
}
return $_wp_random_header;
}
Changelog
| Version | Description |
|---|---|
| 3.4.0 | Introduced. |