主题功能扩展:为主题增加日志缩略图功能

在我们来发 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 输出的时候,也可以同时将日志缩略图显示出来了。

参考文献:Getting the most from WordPress Post Thumbnail

3 thoughts on “主题功能扩展:为主题增加日志缩略图功能

    1. Dreamcolor Post author

      我也纳闷呢。为啥就不能做为文章编辑页面里面一个默认的 Widget 存在。主题想使用这个功能,只需要调用图片就得了。前面几个步骤完全可以省略掉。

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>