如何阻止WordPress裁剪我的帖子缩略图?

时间:2017-11-06 14:15:46

标签: php wordpress thumbnails

我有一个问题,我的Post缩略图被裁剪为我在css文件或我主题的任何php文件中找不到的尺寸..

  • 我的缩略图图片假设为164x150,但结果是裁剪的缩略图分为164x111或164x142,不确定究竟是哪个。

这是我的functions.php缩略图代码:

function novavideo_lite_get_post_no_thumbnail( $post ){

    global $post;

    // On récupère la liste des images attachées à l'article
    $attachments = get_children( array(
        'post_type'      => 'attachment',
        'posts_per_page' => 1,
        'post_parent'    => get_the_ID(),
        'exclude'        => get_post_thumbnail_id()
    ) );

    // On teste si on a des images ou non
    if ( $attachments ) {

        $attachments_tmp = array_values($attachments);
        $attachment = array_shift($attachments_tmp);

        $extention = explode( '.', $attachment->guid );
        $extention = end($extention);

        $attachment_url = str_replace( '.' . $extention, '-164x150.' . $extention, $attachment->guid );

        return '<img src="' . $attachment_url . '" alt="' . get_the_title() . '" />';

    } else {
        return false;
    }
}
function novavideo_lite_theme_support() {
    add_theme_support( 'post-thumbnails' );    
    add_image_size( 'thumb_site', '164', '150', false ); 
}

请注意,我已经在最后一行禁用了裁剪?

add_action( 'after_setup_theme', 'novavideo_lite_theme_support' );add_filter( 'intermediate_image_sizes', 'novavideo_lite_rcd_remove_stock_image_sizes' ); function novavideo_lite_rcd_remove_stock_image_sizes( $sizes ) {
return array( 'thumb_site' );}function novavideo_lite_delete_thumb_function( $post_ID ) {   
$upload_dir = wp_upload_dir();

if ( 'post' == get_post_type() ):

    global $_wp_additional_image_sizes;

    $post = get_post( $post_ID );
    // On récupère la liste des images attachées à la vidéo
    $attachments = get_children( array(
        'post_type'      => 'attachment',
        'posts_per_page' => -1,
        'post_parent'    => get_the_ID(),
    ) );
    // On teste si on a des images ou non
    if ( $attachments ) {
        foreach ( $attachments as $attachment ) {

            //delete generated thumbs
            wp_delete_attachment( $attachment->ID, true );

            //delete original file
            $file_URI = str_replace($upload_dir['baseurl'], $upload_dir['basedir'], $attachment->guid);
            if( file_exists( $file_URI ) && !is_dir( $file_URI ) ){
                unlink( $file_URI );
            }
        }

    }

endif;}

我一直在使用此代码在发布后自动为帖子生成缩略图

add_filter('get_post_metadata', function($value, $object_id, $meta_key, $single) {
if ($meta_key !== '_thumbnail_id' || $value) {
    return $value;
}

preg_match('~<img[^>]+wp-image-(\\d+)~', get_post_field('post_content', $object_id), $matches);
if ($matches) {
    return $matches[1];
}
return $value;}, 10, 4);

现在,当我打开chrome中的Developers工具时,它给我的缩略图为164×111像素(自然:210×142像素) 显然拇指被裁剪为164×111然后拉伸为164×150 ..我发现img [属性风格]给予入场164×111我用代码禁用它

add_filter( 'post_thumbnail_html', 'remove_width_attribute', 10 );add_filter( 'image_send_to_editor', 'remove_width_attribute', 10 );function remove_width_attribute( $html ) {   $html = preg_replace( '/(width|height)="\d*"\s/', "", $html );   return $html;

但仍然尺寸164×111像素(自然:210×142像素)仍然出现,我相信这是导致我这个问题的原因,但在我的主题文件中无法找到这些缩小

这是我的网站链接http://www.3dslab.com/

请帮助

1 个答案:

答案 0 :(得分:0)

我认为使用缩略图大小

更容易设置缩略图尺寸
/wp-admin -> Settings -> Media 

然后取消选中&#34;裁剪缩略图到精确尺寸(通常缩略图是成比例的)&#34;缩略图大小下的复选框。

然后使用常规WP Post Thumbnail函数(例如get_the_post_thumbnail())在页面上放置缩略图。缩略图将是您正在显示的帖子的精选图像的缩略图。

记得包括

add_theme_support('post-thumbnails');
在您的functions.php文件中

,因此您的帖子和页面上会激活特色图片。

但请注意,您的所有图片都应具有相同的宽高比,或者您在此处链接的页面看起来粗糙且不均匀。