特色图片(有时也称为文章缩略图)是代表单个帖子、页面或自定义后类型的图片。当您创建主题时,可以在归档页面上、头部或帖子上方等多种方式输出特色图片。
启用对特色图片的支持
在出现编辑屏幕上的特色图片界面之前,主题必须声明支持特色图片功能。支持的声明是将以下内容放在主题的 functions.php 文件中:
add_theme_support( 'post-thumbnails' );若要仅为特定的后类型启用特色图片,请参阅 add_theme_support() 设置特色图片
一旦您添加了对特色图片的支持,相应的内容项目的编辑屏幕上将显示“特色图片”元框。如果用户无法看到它,他们可以在屏幕选项中启用它。
默认情况下,“特色图片”元框显示在“编辑帖子”和“编辑页面”屏幕的侧边栏中。

函数参考
add_image_size() – 注册一个新的图片尺寸。set_post_thumbnail_size() – 为帖子缩略图注册一个图片尺寸。
has_post_thumbnail() – 检查帖子是否有附件。the_post_thumbnail() – 显示帖子缩略图。
get_the_post_thumbnail() – 检索帖子缩略图。get_post_thumbnail_id() – 检索帖子缩略图的 ID。
图片尺寸
WordPress 的默认图片尺寸为“缩略图”、“中等”、“大”和“完整大小”(您上传的图片原始尺寸)。可以在 WordPress 管理媒体面板下的 >设置 > 媒体中配置这些图片尺寸。您可以通过传递一个包含图片尺寸的数组来定义自己的图片尺寸:
the_post_thumbnail(); // 无参数 ->; 缩略图
the_post_thumbnail( 'thumbnail' ); // 缩略图(默认最大 150px x 150px)
the_post_thumbnail( 'medium' ); // 中等分辨率(默认最大 300px x 300px)
the_post_thumbnail( 'medium_large' ); // 中大型分辨率(默认最大宽度 768px,无高度限制)
the_post_thumbnail( 'large' ); // 大尺寸分辨率(默认最大 1024px x 1024px)
the_post_thumbnail( 'full' ); // 原始图片分辨率(未修改)
the_post_thumbnail( array( 100, 100 ) ); // 其他分辨率(高度,宽度)添加自定义特色图片尺寸
除了单独使用定义图片尺寸外
the_post_thumbnail( array( , ) );您还可以在主题的函数文件中创建自定义特色图片尺寸,然后在主题模板文件中进行调用。
add_image_size( 'category-thumb', 300, 9999 ); // 宽度为 300 像素(高度无限制)以下是在主题的 functions.php 文件中创建自定义特色图片尺寸的示例。
if ( function_exists( 'add_theme_support' ) ) {
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 150, 150, true ); // 默认特色图片尺寸(裁剪)
// 其他图片尺寸
// 如果您不需要额外的图片尺寸,请删除下一行
add_image_size( 'category-thumb', 300, 9999 ); // 宽度为 300 像素(高度无限制)
}设置特色图片输出尺寸
用于当前主题的 functions.php 文件中。
您可以使用 set_post_thumbnail_size() 通过按比例调整图像大小(即不扭曲它)来设置默认的特色图片尺寸:
set_post_thumbnail_size( 50, 50 ); // 宽 50 像素,高 50 像素,缩放模式通过裁剪图像(从侧面或顶部和底部)来设置默认的特色图片尺寸:
set_post_thumbnail_size( 50, 50, true ); // 宽 50 像素,高 50 像素,裁剪模式样式化特色图片
特色图片被赋予类名“wp-post-image”。它们还会根据显示的缩略图大小获得一个类。您可以使用这些 CSS 选择器对输出进行样式设置:
img.wp-post-image
img.attachment-thumbnail
img.attachment-medium
img.attachment-large
img.attachment-full您也可以通过在 the_post_thumbnail() 中使用属性参数来为特色图片赋予自己的类。
使用“alignleft”类显示特色图片:
the_post_thumbnail( 'thumbnail', array( 'class' => 'alignleft' ) );示例
默认用法
// 检查帖子或页面是否分配了特色图片。
if ( has_post_thumbnail() ) {
the_post_thumbnail();
}若要返回用于 PHP 代码的特色图片而不是显示它,请使用:get_the_post_thumbnail()// 检查特色图片并将其分配给 PHP 变量以供以后使用
if ( has_post_thumbnail() ) {
$featured_image = get_the_post_thumbnail();
}链接到帖子永久链接或更大的图片
不要在同一主题中使用这两个示例。示例 1.要在特定循环中将帖子缩略图链接到帖子永久链接,请在主题的模板文件中的以下内容:
<?php if ( has_post_thumbnail()) : ?>
<a href="<?php the_permalink(); ?>" alt="<?php the_title_attribute(); ?>">
<?php the_post_thumbnail(); ?>
</a>
<?php endif; ?>示例 2.要将网站上所有帖子缩略图链接到帖子永久链接,请将此内容放在当前主题的 functions.php 文件中:
add_filter( 'post_thumbnail_html', 'my_post_image_html', 10, 3 );
function my_post_image_html( $html, $post_id, $post_image_id ) {
$html = '<a href="' . get_permalink( $post_id ) . '">' . $html . '</a>';
return $html;
}此示例链接到“大”帖子缩略图尺寸,并且必须在循环中使用。
if ( has_post_thumbnail()) {
$large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large');
echo '<a href="' . $large_image_url[0] . '">';
the_post_thumbnail('thumbnail');
echo '</a>';
}