wordpress bbpress 添加 featured image
后台 forum 添加 featured image
add_post_type_support('forum', array('thumbnail')); function ks_forum_icons() { if ( 'forum' == get_post_type() ) { global $post; if ( has_post_thumbnail($post->ID) ) echo get_the_post_thumbnail($post->ID,'thumbnail',array('class' => 'alignleft forum-icon')); } } add_action('bbp_theme_before_forum_title','ks_forum_icons');后台 topic 添加 featured image
add_post_type_support('topic', array('thumbnail'));
<?php echo get_the_post_thumbnail($post_id, 'full'); ?>
我想大部分人都很清楚WordPress 2.9版本开始,就增加了Featured Image这个功能。而且这样的功能多用于杂志式的主题,从里一个角度来说,用缩略图的形式比摘要输出形式更能体现网站的可读性!这里就介绍下如何为你的 WordPress主题添加Featured Image功能。
首先,看一看你的主题包,在functions.php文件里必须有下面的语句才能开启单篇日志以及页面里的Featured Image功能。
add_theme_support( 'post-thumbnails' );
当然,如果你只希望在单篇日志里开启这样的功能,只要加入
add_theme_support( 'post-thumbnails', array( 'post' ) );
页面功能同理:
add_theme_support( 'post-thumbnails', array( 'page' ) );
之后,你就需要设定你的缩略图大小,在保证图像不扭曲的情况下,图片的宽度或者高度会被自动按比例调整到最合适的大小,比如100×50像素的图 像,在一个固定为50×50像素大小的显示框下,会调整到50×25像素大小。这样的好处是能显示全部的图像。不过你可以发现,很多时候,缩略图的大小未 必能完全合适整个显示框的大小。比如刚刚的例子,至少还有一半的空间是空余的。因此,你可以自由设定显示框里缩略图的大小,比如单独限定高度或者宽度大 小。不过,这样设置,缩略图可能会扭曲或者只显示一部分。
一下这个定义语句表示现实框的大小为50X50像素,缩略图按比例自动调整。
set_post_thumbnail_size( 50, 50 );
再来看看下面这个定义语句。它表示缩略图会被自动截图成为大小为50X50像素。但是缺点很明显,它只是从坐标0,0开始截图,对于大图来说,它只是显示图片的冰山一角。
set_post_thumbnail_size( 50, 50, true );
现在,你可以开始讲这些定义语句添加在你的主题里,通常都被用在循环(the loop)定义里。
has_post_thumbnail()
将定义是否在当前日志里显示被手动添加的日志缩略图(in the loop)。
<?php
if ( has_post_thumbnail() ) {
// the current post has a thumbnail
} else {
// the current post lacks a thumbnail
}
?>
如果缩略图存在,下面这句定义将显示缩略图
<?php the_post_thumbnail(); ?>
以上这些都是最基本的定义。当然还有更深入的用法。
假设,如果你要在首页显示比较小的缩略图(比如50×50像素),但是在单独日志页面显示比较大的缩略图(比如宽度限定在400像素),你可以完全自定义。
在functions.php里:
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 50, 50, true ); // 非单独页面的显示设置
add_image_size( 'single-post-thumbnail', 400, 9999 ); // 单独日志页面显示设置,9999像素为的是给缩略图另一边大小以最大的空间
在home.php / index.php (取决于你的主题设计)(in the loop) :
<?php the_post_thumbnail(); ?>
在single.php (in the loop) :
<?php the_post_thumbnail('single-post-thumbnail'); ?>
希望你能看得明白以上的设置。
原理是,set_post_thumbnail_size ()
对应 add_image_size ('post-thumbnail')
一起工作。同时,当你添加更多的设定到里面,比如add_image_size( $handle, $width, $height, {$hard_crop_switch} ); 然后the_post_thumbnail( $handle );
就会开始工作,处理并按照你定义的缩略图样式。
当然,如果你要你的主题支持更早的WordPress版本,你必须得用function_exisit ()
(以上的例子里并没有使用function_exisit ()
,为的是尽量让定义简单易用。):
if ( function_exists( 'add_theme_support' ) ) { // Added in 2.9
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 50, 50, true ); // Normal post thumbnails
add_image_size( 'single-post-thumbnail', 400, 9999 ); // Permalink thumbnail size
}
不过需要明白的是,这个功能只针对新上传的图片。假如你之前使用过带有缩略图显示功能的主题,并且新的主题对缩略图的大小设定有别于之前的主题,那么以前上传过的缩略图大小还是保持原来的大小,而新的缩略图将定义于新的设定。