Điều này sẽ làm whatcha cần :)
//Adding script to deligate Thumbnail Size
if ( function_exists( 'add_theme_support' ) ) {
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 960, 276, true ); // default Post Thumbnail dimensions
}
//Set different Thumbnail Sizes for Later
if ( function_exists( 'add_image_size' ) ) {
add_image_size( 'large-thumb', 960, 276, true ); //(cropped)
add_image_size( 'medium-thumb', 605, 174, true ); //(cropped)
add_image_size( 'small-thumb', 288, 83, true ); //(cropped)
add_image_size( 'small-square', 100, 100, true ); //(cropped)
}
<?php if ( has_post_thumbnail() ) {
global $post; //I usually define this in the function that outputs this, fyi
echo '<a href="' . get_permalink( $post->ID ) . '" title="' . esc_attr( $post->post_title ) . '">';
echo get_the_post_thumbnail($thumbnail->ID, 'small-thumb', array( 'alt' => esc_attr( $post->post_title ), 'title' => esc_attr( $post->post_title ) ));
echo '</a>';
} else {
$thumbnails = get_posts(array('numberposts'=>1,'orderby'=>'rand','meta_key' => '_thumbnail_id'));
foreach ($thumbnails as $thumbnail) {
echo '<a href="' . get_permalink( $post->ID ) . '" title="' . esc_attr( $post->post_title ) . '">';
echo get_the_post_thumbnail($thumbnail->ID, 'small-thumb', array( 'alt' => esc_attr( $post->post_title ), 'title' => esc_attr( $post->post_title ) ));
echo '</a>';
}
}
?>
Việc sử dụng get_the_post_thumbnail cũng có thể giúp bạn vì vậy bạn không cần phải tạo một loạt mã fn mà WordPress có thể xử lý cho bạn, chỉ là một suy nghĩ.
Điều này sử dụng $thumbnails = get_posts(array('numberposts'=>1,'orderby'=>'rand','meta_key' => '_thumbnail_id'));
để lấy một cái ngẫu nhiên nếu không có mặt, điều này có thể giúp bạn tiến về phía trước.
Bit này echo get_the_post_thumbnail($thumbnail->ID, 'small-thumb', array( 'alt' => esc_attr( $post->post_title ), 'title' => esc_attr( $post->post_title ) ));
thông báo rằng 'small-thumb'
nó được khớp với các add_image_size fn mà chúng ta ghép lại thành một vài dòng. Vì vậy, nếu bạn có add_image_size( 'small-square', 100, 100, true );
bạn có thể gọi 'small-square'
thay thế.
Chúc mừng