由于各种原因,不建议通过替换URL来执行此操作。例如,如果这样做,则删除原始图像后不会删除缩略图,因为您已断开数据库中的链接。
另一个原因是,如果您尝试访问默认大小生成的缩略图,它将重定向到简单的页面加载。例如:
http://example.com/uploads/test.jpg
成为:
http://example.com/
这意味着对主页的完整请求、加载每个资产、请求更多链接,然后继续。
正确的方法是取消设置默认大小。你可以加入intermediate_image_sizes_advanced
过滤并执行以下操作:
function unset_default_thumbnails( $sizes) {
unset( $sizes[\'thumbnail\']);
unset( $sizes[\'medium\']);
unset( $sizes[\'medium-large\']);
unset( $sizes[\'large\']);
return $sizes;
}
add_filter(\'intermediate_image_sizes_advanced\', \'unset_default_thumbnails\');
完成。现在,上载图像后将不会生成缩略图。仍将生成您自己的缩略图大小。
要删除当前缩略图,可以使用Thumbnail Cleaner 插件。
更新根据您的评论,我添加了一种方法来替换the_post_thumbnail()
使用空字符串。这是not 推荐。
add_filter( \'post_thumbnail_html\', \'disable_post_thumbnails\' ,10 , 5 );
function disable_post_thumbnails( $html, $post->ID, $post_thumbnail_id, $size, $attr ){
// Check if the image is true
if ( $html ) {
switch ( $size ) {
case \'post-thumbnail\':
case \'thumbnail\':
case \'medium\':
case \'medium-large\':
case \'large\':
// Let\'s replace the thumbnail\'s URL with the
// website\'s URL for only the default sizes
$html = str_replace( $html , \'<img src="\'.site_url().\'"/>\' , $html );
break;
default:
break;
}
}
// Return the URL
return $html;
}
请注意,一旦声明了一个函数,就不能删除它。你能做的就是过滤它的输入/输出,如果它确实支持的话。
PS: 这会破坏插件/主题的行为。这只是出于教育目的,不要在家里尝试。