从图库获取顶部图像并打印出具有精确尺寸的缩略图

时间:2011-07-26 作者:Jordash

我正在寻找一个插件,它可以从Wordpress帖子库中提取图片(请注意,不是特色缩略图,我们有数千篇帖子,不能追溯回去为每篇帖子设置特色图片。)

另外,我测试的一些插件不允许您指定精确的尺寸,Wordpress获取图像插件让您像我想的那样从库中提取图像,然后设置宽度,但它会尝试保持比例。所以基本上我需要它来准确地做到这一点,除了不尝试保持比例,而是做缩放裁剪,如果这有意义的话。

1 个回复
最合适的回答,由SO网友:Otto 整理而成

不需要插件。主题中的一些简单代码可以完成这项工作。

通过传递大小参数的宽度和高度数组,可以获得任何大小的图像,但要获得裁剪图像,必须将其预定义为预先制作的图像大小,以便在上载时正确创建裁剪。

要做到这一点,在你的主题的功能。php文件,您需要添加如下内容:

function themename_setup() {
    add_image_size( \'themename-some-description-of-the-size\', 100, 100, true );
}
add_action( \'after_setup_theme\', \'themename_setup\' );
这是您想要的宽度和高度,“true”表示您希望将其裁剪到图像的中心。

现在,您需要循环中的代码来提取特征图像(如果有)或库中的第一个图像(如果没有特征图像)。此代码将进入循环,以便您在当前帖子中获得它。

if ( has_post_thumbnail() ) {
        $thumb_id = get_post_thumbnail_id();
} else {
    $attachments = get_children( array(
        \'post_parent\' => get_the_ID(),
        \'post_status\' => \'inherit\',
        \'post_type\' => \'attachment\',
        \'post_mime_type\' => \'image\',
        \'order\' => \'ASC\',
        \'orderby\' => \'menu_order ID\',
        \'numberposts\' => 1)
    );
    $attachment = array_shift($attachments);
    $thumb_id = $attachment->ID;
}
最后,您需要显示生成的图像:

echo wp_get_attachment_image($thumb_id, \'themename-some-description-of-the-size\');
简单。然而,有一个警告:您已经上传的图像不会为它们创建此大小的图像。所以WordPress会选择最合适的图像并尝试使用它。这并不总是理想的。使用插件,如Regenerate Thumbnails 创建代码后,它将遍历所有图像,并让WP重新生成缩略图,为所有缩略图创建适当的图像大小。

还要记住,在创建主题时,此代码更像是一个指导原则,而不是您实际应该使用的代码。我写这篇文章是为了教你如何自己做,如何定制你的主题,而不是模仿意大利面。

您可以在以下主题中找到有关图像处理的更多信息:http://ottopress.com/2011/photo-gallery-primer/

结束

相关推荐

images are broken

我有一段代码,用于显示来自RSS提要的每篇帖子上的图像,这些图像将从yahoo images search获取,我将把这段代码粘贴到我的单曲中。php文件,这样它就会出现在我的帖子之后,我在其中一个网站上找到了这段代码,这段代码用于获取图像,但不是从yahoo获取图像,而是从不同的feed获取图像我使用的代码如下:- <?php include_once(ABSPATH.WPINC.\'/rss.php\'); // path to include script $f