在我们来发 WordPress 主题的时候,可能会需要让文章在显示的同时,提供一张能够该文章内容的图片。这样,文章会更生动,也会让您的主题更美观。
从 WordPress 2.9 系列开始,核心程序提供了一个叫做日志缩略图“Post Thumbnail”功能。而如何将这个功能加入到您的主题中,就需要对现有主题进行一些修改了。
修改主题的步骤还是相对简单的,各位可以通过下文的讲解来了解整个步骤。
1. 需要在主题的 functions.php 文件中插入调用该功能的代码。这样,在编辑文章的时候,才会在编辑页面出现插入缩略图的功能项。
if(function_exists('add_theme_support')) {
add_theme_support('post-thumbnails');
// add_theme_support('post-thumbnails', array('post')); // 添加到日志
// add_theme_support('post-thumbnails', array('page')); // 添加到页面
}
各位可以根据需要,去掉相应代码前面的注释代码。
2. 还需要告诉 WordPress 我们需要多大尺寸的缩略图。
set_post_thumbnail_size(570, 200, true); // 宽,高,是否裁切(true or false)
括号中的键值可以根据需要自己定义。
3. 在站点内的某些地方,可能还需要一些不同尺寸的缩略图。那么,也可以通过以下代码获得:
add_image_size('single_post', 200, 120, true); // 名称,宽,高,是否裁切
括号内的键值可以根据需要自己定义。如果您需要定义多个尺寸的缩略图,那么可以多次使用该代码。
4. 接下来,我们就需要定义缩略图在主题中显示的位置了。各位可以将下面代码加入到主题中想要插入缩略图的地方。
<?php
if (has_post_thumbnail()) {
the_post_thumbnail();
// the_post_thumbnail('single-post');
// $image = get_the_post_thumbnail();
} else {
}
?>
各位可以根据需要,去掉相应代码前面的注释代码。
结合以上的步骤,我们就在主题中加入了日志缩略图的显示功能了。那么如何在 RSS 输出中也同样调取这些图片呢?需要将以下代码加入到 functions.php 文件中:
function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<p>' . get_the_post_thumbnail($post->ID) .
'</p>' . get_the_content();
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');
这样,在 RSS 输出的时候,也可以同时将日志缩略图显示出来了。
我一直就没搞懂为什么一定还要在functions里先调用才能启用...
我也纳闷呢。为啥就不能做为文章编辑页面里面一个默认的 Widget 存在。主题想使用这个功能,只需要调用图片就得了。前面几个步骤完全可以省略掉。
正找这个功能