如何用WordPress原生图像工具替换TimThumb


How can I replace TimThumb with WordPress native image tools?

我最近开始在一个现有的WordPress网站上工作。WordPress安装上的主题过度使用TimThumb,这真的没有必要。WordPress的原生图像大小应该能够处理所需的功能。但是,我不知道如何替换TimThumb。

在生成缩略图的主题文件中有一个post-thumb.php。文件如下:

if (get_option('solostream_default_thumbs') == 'yes') { $defthumb = get_bloginfo('stylesheet_directory') . '/images/def-thumb.jpg'; } else { $defthumb == 'false'; }
$solostream_img = get_the_image(array(
    'meta_key' => 'thumbnail',
    'size' => 'thumbnail',
    'image_class' => 'thumbnail',
    'default_image' => $defthumb,
    'format' => 'array',
    'image_scan' => true,
    'link_to_post' => false, ));
if ( $solostream_img['url'] && get_option('solostream_show_thumbs') == 'yes' && get_post_meta( $post->ID, 'remove_thumb', true ) != 'Yes' ) { ?> 
    <img class="<?php echo $solostream_img['class']; ?>" src="<?php bloginfo('template_directory'); ?>/scripts/timthumb.php?src=<?php echo $solostream_img['url']; ?>&amp;w=150&amp;h=150&amp;zc=1" alt="<?php the_title(); ?>" title="<?php the_title(); ?>" />
<?php } 
} ?>

我只想用WordPress内置的the_post_thumbnail('thumbnail')函数来替换整个函数。

更换这么简单吗

src="<?php bloginfo('template_directory'); ?>/scripts/timthumb.php?src=<?php echo $solostream_img['url']; ?>&amp;w=150&amp;h=150&amp;zc=1"

src="<?php the_post_thumbnail('thumbnail'); ?>"

任何想法或朝着正确的方向推动都将不胜感激。感谢阅读。

您可以添加自定义缩略图并在代码中使用它们。

首先你必须添加主题支持,设置缩略图名称,设置大小,并设置大小

add_theme_support( 'post-thumbnails' ); // this enable thumbnails and stuffs
add_image_size( 'mini-thumbnail', 60, 60, true );
add_image_size( 'one-more-size', 300, 260, true );

然后,您可以通过调用以下命令在代码中使用它:

<?php while ( have_posts() ) : the_post();
the_title();
the_post_thumbnail( 'mini-thumnail' );
the_excerpt(); ?>

Wordpress有一个很好的参考页面,用于此实现和功能:https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/

我不确定这是否是最有效的方法,但我已经能够通过替换使其工作

<img class="<?php echo $solostream_img['class']; ?>" src="<?php bloginfo('template_directory'); ?>/scripts/timthumb.php?src=<?php echo $solostream_img['url']; ?>&amp;w=150&amp;h=150&amp;zc=1" alt="<?php the_title(); ?>" title="<?php the_title(); ?>" />

带有

<?php the_post_thumbnail('thumbnail'); ?>