如何从生成禁用后缩略图?

时间:2018-05-13 作者:Honoluluman

在我的主题中,有一组

add_theme_support( \'post-thumbnails\' );
set_post_thumbnail_size( 470, 680 );
这实际上是在默认图像之外再生成一个图像small,medium,medium-large,large

而且它是从作者设定的主题出发,当然是为了特定的目的。

我正在使用wp_insert_attachment() 用于从前端上载图像的默认功能。仅从这个特定的过程中,我不希望生成多个图像。Only the original image and the thumbnail image. 所以我做了一个简单的代码

function test_attachment( $user_data, $values, $user_id ) {

if( isset( $values[\'profile\'][\'user_avatar\'][\'path\'] ) ) {

    $filename = $values[\'profile\'][\'user_avatar\'][\'path\'];
    $filetype = wp_check_filetype( basename( $filename ), null );
    $wp_upload_dir = wp_upload_dir();
    $attachment = array(
        \'guid\'           => $wp_upload_dir[\'url\'] . \'/\' . basename( $filename ),
        \'post_mime_type\' => $filetype[\'type\'],
        \'post_title\'     => preg_replace( \'/\\.[^.]+$/\', \'\', basename( $filename ) ),
        \'post_content\'   => \'\',
        \'post_status\'    => \'inherit\'
    );


    $attach_id = wp_insert_attachment( $attachment, $filename );


    require_once( ABSPATH . \'wp-admin/includes/image.php\' );
    //remove all the generated images and just keep only the original and the thumbnail image.
    add_filter(\'intermediate_image_sizes_advanced\', function($sizes) {
                    unset( $sizes[\'medium\']);
                    unset( $sizes[\'medium_large\']);
                    unset( $sizes[\'large\']);
                    return $sizes;
        });


    $attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
    wp_update_attachment_metadata( $attach_id, $attach_data );

    $previous_avatar_id = get_user_meta( $user_id, \'avatar_attachment_id\', true );

    if( $previous_avatar_id ) {
        wp_delete_attachment( $previous_avatar_id );
    }

    update_user_meta( $user_id, \'avatar_attachment_id\', $attach_id );

}
}  
它工作得很好,并且实际上不稳定默认图像大小的生成与中间图像大小高级图像的生成,但是仍然会生成后期缩略图图像我一直在尝试取消设置后期缩略图的创建。我试图添加

unset( $sizes[\'post-thumbnail\']);
但运气不好。

如何才能停止从解析器内部生成后期缩略图图像,而不删除原始的set\\u post\\u thumbnail\\u size,因为它是为其他特定目的而设置的?

任何想法都将不胜感激。

2 个回复
SO网友:Dharmishtha Patel

要执行此操作,请进入Settings»Media并将所有值设置为0。像这样:enter image description here

SO网友:Honoluluman

我在使用

unset( $sizes[\'post-thumbnails\']);
而不是

unset( $sizes[\'post-thumbnail\']);
这实际上是图像的名称。

结束

相关推荐

Images in Blog List

我只是改变了主题。我的博客页面列表用于显示我在每篇文章中使用的图像(内容图像,而非特色图像)。我使用图像的URL,而不是媒体库。单个帖子页面显示图像,但博客列表页面不会显示图像,除非我将图像添加到媒体库中。是否有任何代码和/或插件可用于确保在我将图像添加到单个帖子的内容时,该图像包含在博客列表页面上?是否有办法填充过去包含图像但不再在列表页上显示图像的帖子?谢谢