My WordPress website is generating thumbnails for my images I want to prevent WordPress from doing that how can I achieve the same?
You can follow these steps for the same :
Step 1: In Admin Panel Go to Settings -> Media.
Step 2: Now Uncheck (Crop thumbnail) If it's Checked.
Step 3: Set at Thumbnail size, Medium size, and Large size the Width and Height to
You may use the remove_image_size() method like so:
add_action( 'init', 'so_73173777_remove_image_sizes' );
function so_73173777_remove_image_sizes() {
remove_image_size( '1200' );
remove_image_size( 'portfolio-full' );
remove_image_size( 'blog-medium' );
/* etc ... */
}
For removing default WP sizes:
add_filter( 'intermediate_image_sizes_advanced', 'so_73173777_remove_core_sizes' );
// This will remove the default image sizes and the medium_large size.
function so_73173777_remove_core_sizes( $sizes ) {
unset( $sizes['small']);
unset( $sizes['medium']);
unset( $sizes['large']);
unset( $sizes['medium_large']);
return $sizes;
}
Consider searching for these particular problems, because this took me 5 seconds to find this plugin: https://wordpress.org/plugins/disable-generate-thumbnails/
Related
I'm using latest version of WordPress 6.1.1 and I'm using child of 2023 theme. I've installed wooComemrce. On my home page I'm showing WooComemrce's "Newest Products" block. In this block I'm not able to stop thumbnail image cropping.
I've tried this solution How can I display my original product images instead of the ones generated by woocomerce?
It works for all thumbnail images but doesn't work for WooComemrce's "Newest Products" block.
I've added all 6 filters mentioned on https://woocommerce.com/document/image-sizes-theme-developers/#section-2
How to fix it?
Is there any separate filter for the images shown in this block?
Here is my code in child's theme function.php
function rf_product_thumbnail_size( $size ) {
global $product;
$size = 'full';
return $size;
}
add_filter( 'single_product_archive_thumbnail_size', 'rf_product_thumbnail_size' );
add_filter( 'subcategory_archive_thumbnail_size', 'rf_product_thumbnail_size' );
add_filter( 'woocommerce_gallery_thumbnail_size', 'rf_product_thumbnail_size' );
add_filter( 'woocommerce_gallery_image_size', 'rf_product_thumbnail_size' );
add_filter( 'woocommerce_gallery_full_size', 'rf_product_thumbnail_size' );
Sometime ago I added a couple of additional image formats to Wordpress in order to fine-tune my responsive display. I added those lines to functions.php:
add_image_size( "maximal", "1900" );
add_image_size( "desktop", "1400" );
add_image_size( "tablet", "900" );
add_image_size( "smalltablet", "700" );
add_image_size( "mobile", "500" );
add_theme_support( 'post-thumbnails' );
I release I was too greedy because I'm not using most of those formats now and I would like to remove some of them. To do so I basically commented the image formats that I wanted to get rid of but from what I see, all srcset attributes are still listing them in my code.
Is there a way to tell Wordpress to stop adding those formats in srcset ? I thought of using a regex to get rid of them but that generates additional processing to the page.
Thanks
Laurent
To make sure that these images' sizes is unregistered use this:
remove_image_size( "maximal" );
Then use these filters to clean the current images from these sizes:
// Remove the calculated image sizes
add_filter( 'wp_calculate_image_sizes', '__return_false' );
// Remove the calculated image sizes
add_filter( 'wp_calculate_image_srcset', '__return_false' );
// Clean image attrs
add_filter( 'wp_get_attachment_image_attributes', 'unset_image_sizes');
function unset_image_sizes() {
if( isset( $attr['sizes'] ) )
unset( $attr['sizes'] );
if( isset( $attr['srcset'] ) )
unset( $attr['srcset'] );
}
I hope this helps.
I'm trying to get rid of unused styles in my WP. I'm doing it like this:
// remove CSS
add_action('wp_dequeue_style', 'remove_css');
function remove_css() {
// boostrap shortcodes
wp_dequeue_style(array(
'bs_bootstrap-css',
'bs_shortcodes-css'
));
// woocommerce
wp_dequeue_style('woocommerce-layout-css');
wp_dequeue_style('woocommerce-smallscreen-css');
wp_dequeue_style('woocommerce-general-css');
}
Problem is, neither first nor the secound example works. I tried using wp_deregister_script and setting a priority to add_action. What can I do?
You should hook into wp_enqueue_scripts:
add_action( 'wp_enqueue_scripts', 'so26892641_remove_css', 25 );
function so26892641_remove_css(){
wp_dequeue_style('woocommerce-layout');
// etc
}
Woocommerce has a filter for that, also note that the handles do not have "-css" at the end.
add_filter( 'woocommerce_enqueue_styles', 'jk_dequeue_styles' );
function jk_dequeue_styles( $enqueue_styles ) {
unset( $enqueue_styles['woocommerce-general'] ); // Remove the gloss
unset( $enqueue_styles['woocommerce-layout'] ); // Remove the layout
unset( $enqueue_styles['woocommerce-smallscreen'] ); // Remove the smallscreen optimisation
return $enqueue_styles;
}
Code shamelessly copied from the following link :)
Inside Wordpress, I need to generate and create inside the upload folder a new cropping image size that has:
width=205px
height=120px
Inside my function.php here is my code:
// Call function on after setup
add_action( 'after_setup_theme', 'theme_setup_img' );
function theme_setup_img() {
add_theme_support( 'post-thumbnails' );
add_image_size('search-thumb', 205, 120, true );
// set_post_thumbnail_size( 205, 120, true );
}
However, no new image-sizes have been created inside the upload folder (only default WP sizes). Any solution?
Note: I'm using the default theme and the latest WP version
Your code looks correct. Mine is slightly different and I know it works:
if (function_exists('add_theme_support'))
{
// Add Thumbnail Theme Support
add_theme_support('post-thumbnails');
add_image_size('large', 700, '', true); // Large Thumbnail
add_image_size('medium', 250, '', true); // Medium Thumbnail
}
This was taken from the HTML5 Blank Theme by Todd Motto. Gerald also mentioned writing a script to re-render but there's a great plugin for that called Regenerate Thumbnails that does the same thing.
This might be due to you calling the new size inside the "after_setup_theme" action... I use the following code:
// Add custom image sizes
if( function_exists( 'add_image_size' ) ) {
add_image_size( 'search-thumb', 205, 120, true );
}
And it works every time... if it's inside the functions.php file, you don't need an action or hook to make it work.
Also, you can add this to functions.php to make your custom sizes show up in the drop down menus when inserting images into pages/posts/where ever:
// Functions to add custom image sizes to the media library thickbox area
// and put them into drop down
function my_insert_custom_image_sizes( $sizes ) {
// get the custom image sizes
global $_wp_additional_image_sizes;
// if there are none, just return the built-in sizes
if ( empty( $_wp_additional_image_sizes ) )
return $sizes;
// add all the custom sizes to the built-in sizes
foreach ( $_wp_additional_image_sizes as $id => $data ) {
// take the size ID (e.g., 'my-name'), replace hyphens with spaces,
// and capitalise the first letter of each word
if ( !isset($sizes[$id]) )
$sizes[$id] = ucfirst( str_replace( '-', ' ', $id ) );
}
return $sizes;
}
add_filter( 'image_size_names_choose', 'my_insert_custom_image_sizes' );
You will need a plugin (I use AJAX Thumbnail Rebuild) to resize old images already uploaded before this code was implemented.
The problem here was the "Dynamic Image Resizer" plug-in.
It was breaking my theme with Wordpress 4.0.
I have used custom image sizes in wordpress with "add_image_size" and it's working fine.
I tried to remove default image sized with following code:
function filter_image_sizes( $sizes) {
unset( $sizes['thumbnail']);
unset( $sizes['medium']);
unset( $sizes['large']);
return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'filter_image_sizes');
But these default images sizes are still visible in media upload popup.
You may give it a try
function my_custom_image_sizes($sizes) {
unset( $sizes['thumbnail']);
unset( $sizes['medium']);
unset( $sizes['large']);
unset( $sizes['full'] ); // removes full size if needed
// add your image sizes, i.e.
$myCustomImgsizes = array(
"magazine-thumb" => __( "Magazine" ),
"slideshow-thumb" => __( "Slideshow" ),
"sidebar-thumb" => __( "Sidebar" )
);
$newimgsizes = array_merge($sizes, $myCustomImgsizes);
return $newimgsizes;
}
add_filter('image_size_names_choose', 'my_custom_image_sizes');
Tested on 3.5.1 in my localhost
Using unset and intermediate_image_sizes_advanced will work but only on images uploaded after the function is added. To change it for existing images you need to regenerate them using a plugin ( in essence deleting that image size) or just hide that option from being visible.
// add custom image size
function mytheme_95344() {
add_image_size('x-la',800,800, false);
}
add_action( 'after_setup_theme', 'mytheme_95344' );
// remove it
function remove_image_size_95344($sizes) {
unset($sizes['x-la']);
return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'remove_image_size_95344');
So this x-la size will still show for images before the unset function was added.
To remove this you can try.
Hide it from the display using image_size_names_choose
function remove_image_size_95344($possible_sizes) {
unset( $possible_sizes['x-la'] );
return $possible_sizes;
}
add_filter('image_size_names_choose', 'remove_image_size_95344');
Answer from https://wordpress.stackexchange.com/questions/95344/hide-custom-image-sizes-from-media-library#answer-95350
I tried intermediate_image_sizes_advanced and it wasn't working, so I inspected the get_intermediate_image_sizes() function and saw that they now use the intermediate_image_sizes filter hook.
So I was able to remove all image sizes by doing this.
add_filter('intermediate_image_sizes', function($size){
return [];
},9999);
Fill free to create the callback function separately so it can be unhooked.