首页 > 新闻资讯 > 如何在WordPress中给推荐文章添加缩略图

如何在WordPress中给推荐文章添加缩略图

5条评论
标签:
更多

对于如何在WordPress中显示推荐文章,网上有非常多方法,但似乎不是那么令人满意。在本教程中,我们将与大家分享一种可以让用户选择某些特定文章并通过使用WordPress2.9新增的缩略图功能来显示这些文章的方法。此方法可以避免使用“置顶文章”,在其他一些自定义的方法中由于其他功能不可避免要使用到“置顶文章”。


注意: 使用本教程需要熟悉一些WordPress、PHP、HTML和CSS知识。


我们修改了由W3C Gallery公司San制作的Featured Posts Lists插件。虽然San给这款插件创建了一个高级版本可以显示图片,但它需要一个自定义字段。这样一来,你只能在2.9中使用这个缩略图功能。

最终效果


修改插件


首先,将下面的代码复制到functions.php 文件或将它作为插件上传到一个单独的文件里。
 

<?php
/*
Plugin Name: Featured Posts List with Thumbnail
Plugin URI: http://www.w3cgallery.com/w3c-css/display-specificmultiple-posts-as-feat...
Description: Display specific/multiple posts List with Thumbnails on your sidebar or any place of your site. It creates a tab "Featured Posts List" in "Settings" tab
Version: 2.0
Author: SAN – w3cgallery.com & Windowshostingpoint.com & Syed Balkhi
Author URI: http://www.w3cgallery.com/
*/

// Main function to diplay on front end

function featuredpostsList() {
global $post, $wpdb, $posts_settings;
// posts_id from database
$posts_id = $posts_settings['posts_id'];

if($posts_id) {

$posts_idarray = explode(',',$posts_id);

foreach ($posts_idarray as $list){
$post = new WP_Query('p='.$list.'');
$post->the_post();
?>
<div class="popcontainer">
<div class="popthumb"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail(); ?></a></div>
<div class="popcontent">
<h2><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h2>
<div class="popauthor"><?php the_time('M j, Y') ?></div>

</div>

</div>

<?php }
} else {
echo $before ."None found". $after;
}
}

$data = array(
'posts_id' => ''
);
$ol_flash = '';

$posts_settings = get_option('posts_settings');

// ADMIN PANLE SEETTING
function posts_add_pages() {
// Add new menu in Setting or Options tab:
add_options_page('Featured Posts List', 'Featured Posts List', 8, 'postsoptions', 'posts_options_page');
}

/* Define Constants and variables*/
define('PLUGIN_URI', get_option('siteurl').'/wp-content/plugins/');

/* Functions */

function posts_options_page() {
global $ol_flash, $posts_settings, $_POST, $wp_rewrite;
if (isset($_POST['posts_id'])) {
$posts_settings['posts_id'] = $_POST['posts_id'];
update_option('posts_settings',$posts_settings);
$ol_flash = "Your Featured List has been saved.";
}

if ($ol_flash != '') echo '<div id="message"class="updated fade"><p>' . $ol_flash . '</p></div>';

echo '<div class="wrap">';
echo '<h2>Add Posts ID to Create Featured Post List</h2>';
echo '<table class="optiontable form-table"><form action="" method="post">
<tr><td colspan="2"><strong>This plugin gives full freedom to display multiple posts as Featured Post List to your site.</strong></td></tr>
<tr><td><strong>Post ID :</strong></td><td><input type="text" name="posts_id" value="' . htmlentities($posts_settings['posts_id']) . '" size="50%" /></td></tr>
<tr><td colspan="2"><strong>SAN Hint: To Add Multiple Post IDs use " , " for exmple : " 1, 2, 3" </strong></td></tr>
</table>';

echo '<Div class="submit"><input type="submit" value="Save your list" /></div>
<p>Paste this code into where you want it to display featured posts list <strong>&lt;?php featuredpostsList(); ?&gt;</strong> <br/> Or you can pass variable before and after like this default setting <strong>&lt;?php featuredpostsList($before = &lt;li&gt;", $after = &lt;/li&gt;") ?&gt;</strong></p>
</form>';
echo '</div>';

}

add_action('admin_menu', 'posts_add_pages');

?>

 完成后,你可以在模板文件的任何地方粘贴该代码即可。

<?php featuredpostsList(); ?>

 


自定义CSS


这里需要用到自定义的CSS分类,在style.css文件里粘贴下面的代码:


.popcontainer{
border-bottom: 1px solid #D0CDC5;
width: 274px;
float: left;
padding: 0 0 15px 0;
margin: 0 0 15px 0;
}
.popthumb{
width: 60px;
float: left;
background: #D0CDC5;
padding: 5px;
margin: 0 10px 0 0;
}
.popcontent{
width: 185px;
float: left;
}
.popcontent h2{
font-size: 13px;
margin: 0 0 3px 0;
padding: 0;
}
.popcontent h2 a{
text-decoration: none;

 

高级选项


使用上面的代码将显示默认的缩略图和文章标题以及发布日期。问题在于你可能想要使用不同大小的缩略图。然而你的主题很可能还在别处使用了缩略图功能,使用当前的代码你就无法使用两个不同尺寸的缩略图,因此你得稍作调整才能够添加一个新的图片尺寸。


打开functions.php文件找到缩略图代码并添加以下代码:


add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 150, 150, true ); // Normal post thumbnails
add_image_size( 'featured-thumbnail', 60, 60 ); // Featured thumbnail size


在前面的插件里找到下面的几行代码:


<div class="popthumb"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail(); ?></a></div>


并将它替换为:


<div class="popthumb"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail('featured-thumbnail'); ?></a></div>


这样你就可以使用两种不同大小的缩略图了。


不过这里也有一个问题,如果你的缩略图不成比例,那么它会以更小的图片而不是60*60显示,因为WordPress没有修剪功能。为了避免这个问题你可以使用 Additional Image Sizes Plugin 插件,该插件拥有修剪的功能。将自定义的图片尺寸命名为推荐缩略图,同样地也使用上面的代码来代替原来的代码即可。

我们使用这种方法是因为我们需要使用置顶文章来显示另一份文章列表。对于缩略图,我们选择使用Additional Image Sizes 插件而避免使用TimThumb JavaScript 以保持网站加载的速度。
 

原文:how-to-display-featured-posts-with-thumbnails-in-wordpress

* 版权声明:作者WordPress啦! 转载请注明出处。

#1
这里的资源比较有深度了,我以前搜索过一个WordPress视频的关键词,排前面的站水平不咋的,你们为什么不弄些视频,手册之类的,方便传播吗,
#2
多谢反馈,我们的WordPress中文手册正在计划中。
#3
这个缩略图是侧栏的吗? 我试过好多主页的缩略摘要的插件 都没有达到我预期的效果不知道是不是我设置的有问题 郁闷
#4
缩略图插件,你可以看看,这款插件http://www.wordpress.la/wordpress-thumbnails-anywhere.html,它可以显示在侧栏中
#5
这个有点含量,谢博主了,非常有用