Define a new cropping image size in Wordpress - wordpress

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.

Related

Custom Feature Image Size Issue WordPress

The given page is a blog archive page that lists recent posts.
https://petcarepicks.com/
I want the featured image thumbnail on this page to load the same file size as it display (360px by 180px). I added the given code in functions.php of the theme, but it is still not working. It loads the old file of 408 x 204 size and display on new dimensions.
add_image_size('new-few-img', 360, 180,true);
the_post_thumbnail('new-few-img')
The new image size is registered, and the file appears in directory after regenerating the thumbnails. However, on front end it still loads the old dimensions and displays new dimensions (Forced by CSS).
I also tried using below line;
if ( has_post_thumbnail() ) {
the_post_thumbnail( 'new-few-img' );
}
or
set_post_thumbnail_size(360,180,true);
or
if ( function_exists( 'add_theme_support' ) ) {
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 360, 180, true );
}
Please help me resolve the issue.
Add below code into you function.php file.
function register_new_thumbnail() {
add_theme_support( 'post-thumbnails' );
add_image_size('new-few-img', 360, 180,true);
}
add_action( 'after_setup_theme', 'register_new_thumbnail' );
Now your new thumbnail size is registered and will work on only new images. To crop your already used image you need a plugin which will help you to regenerate this thumbnail size.
https://wordpress.org/plugins/regenerate-thumbnails/
https://wordpress.org/plugins/regenerate-thumbnails-advanced/
I hope this may help your issue.

Why am I not able to see my new image sizes in gutenberg image size list

I have seen several similar questions, but none of them seem to resolve my issue.
I have customised the default thumbnail size and tried to set some custom image sizes, but they are not showing in the Gutenberg image size options - even after clearing, re-generating and re-adding images.
The thumbnail size has updated correctly though.
Below is the code used in my function.php
function set_custom_image_sizes() {
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 600, 330, true );
if ( function_exists( 'add_image_size' ) ) {
add_image_size('hero', 1680, 837, true);
add_image_size('person', 800, 800, true);
}
}
add_action( 'after_setup_theme', 'set_custom_image_sizes' );
function create_custom_image_sizes($sizes){
return array_merge( $sizes, array(
'hero' => __('Hero Image'),
'person' => __('Person Image')
));
}
add_filter('image_size_names_choose', 'create_custom_image_sizes');
The answer in this case is to realise that images in the media library also need to be regenerated even if they have not been added to a page. To prevent the need for re-uploading all images I use a plugin called "Regenerate Thumbnails" to update all the images in the library.
Once installed the regenerate option is available in the "Tools" menu

How do I get multiple rectangular thumbnail sizes in Wordpress?

This may sound like a silly question but I've struggled to find the answer elsewhere.
I'm trying to get a few different (rectangular) sizes of thumbnail on my Wordpress.org homepage. Currently all I get are squares (or sometimes, bizarrely, one or two rectangles and the rest squares).
I'm using this code in <head>:
add_theme_support('post-thumbnails');
...and this in The Loop:
<?php the_post_thumbnail( array(90,60), $attr ); ?>
I've also tried using this in <head>:
add_theme_support('post-thumbnails');
set_post_thumbnail_size( 180, 80, true );
add_image_size( 'worth-reading', 180, 80 );
...and this in The Loop:
<?php the_post_thumbnail( 'worth-reading' ); ?>
With both of these methods I've tried uploading new Featured Images after coding the above in (and also using the Regenerate Thumbnails plugin).
Anyway, the above includes everything I've found on similar forum posts and still none of it seems to work.
Many thanks in advance!
many thanks for your help!
I've done exactly as you said and unfortunately it still doesn't entirely work.
The normal thumbnails are now the correct size but the additional image sizes are just squares with the specified height.
In functions.php:
if ( function_exists( 'add_theme_support' ) ) {
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 90, 60, true );
// Examples of additional image sizes
add_image_size( 'latest', 120, 100 );
add_image_size( 'worth-reading', 180, 80 );
}
...and at various point in the body:
<?php the_post_thumbnail(); ?>
&
<?php the_post_thumbnail( 'latest' ); ?>
&
<?php the_post_thumbnail( 'worth-reading' ); ?>
Any ideas? Many thanks!
Your code looks right, but enabling the support for featured images and registering sizes needs to be done in your functions.php
So in functions.php add this:
if ( function_exists( 'add_theme_support' ) ) {
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 180, 80, true ); // default Post Thumbnail dimensions (cropped)
// Examples of additional image sizes
// add_image_size( 'worth-reading', 180, 80 );
}
Since you are setting the default post_thumbnail_size to 180x80 - you probably don't need to register another custom size using the same dimensions but I left an example (commented out) of how you would do it.
In the loop you would use this:
if ( has_post_thumbnail() ) {
the_post_thumbnail();
}
Regenerate thumbnails has problems with custom sizes. It will only resize media library items using the sizes defined in the media settings (Settings -> Media). For older posts, I usually just re-upload the image once I add the new size.
Source is all here:
http://codex.wordpress.org/Post_Thumbnails
Something to note about the add_image_size field. The functions works like this:
<?php add_image_size( $name, $width, $height, $crop ); ?>
$name is your custom name, $width is width, $height is height. Crop by default is false (which is how you are using it), which will try it's best to crop / resize the photo. If you set it to true it will hard crop the image without trying to resize it. This is more FYI.
The code you are using SHOULD be working. WordPress only creates the image sizes when you upload the image. Plugins like regenerate thumbnails won't actually create the image size for custom added image sizes.
Did you re-upload the images after moving this code into functions.php?

Add "Feature Image" Option on add new post

I want to add an option to add feature image on add new post page like the image below.
How can I do it?
You need to use the wordpress function add_theme_support( 'post-thumbnails' );
Just add that line of code in your wordpress functions, and it will allow you to do that.
Read more about it here: http://codex.wordpress.org/Function_Reference/add_theme_support#Post_Thumbnails
Hope that helps!
UPDATE: here is what I use in my functions.php. It creates re-sized versions of your uploaded images in your uploads folder. very useful:
// post thumbnail support
if ( function_exists( 'add_image_size' ) ) add_theme_support( 'post-thumbnails' );
if ( function_exists( 'add_image_size' ) ) {
add_image_size( 'featured-thumb', 282, 158, true );
}

How do you set only the image width of a Wordpress thumbnail

I am trying to set the width of a post thumbnail using:
the_post_thumbnail()
The width of the image needs to be 210px but the height is not meant to be fixed as all the images will be different sizes. I have tried:
the_post_thumbnail( array( 210, 0 ) )
But this does not work. Any ideas?
Thanks.
Add this inside your functions.php
if ( function_exists( 'add_image_size' ) ) {
add_image_size( 'category-thumb', 210, 9999 ); //210 pixels wide (and unlimited height)
}
Use it inside your theme's template files
<?php if ( has_post_thumbnail() ) { the_post_thumbnail( 'category-thumb' ); } ?>
For default thumbnail add this inside your functions.php
if ( function_exists( 'add_theme_support' ) ) {
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 150, 9999 ); // default Post Thumbnail dimensions
}
Reference: Here.
Change the_post_thumbnail(array(210,0)) to the_post_thumbnail(array(210,9999))
Open your themes functions.php file and add your image size:
Example:
add_image_size('slider', 525, 339, true);
Breakdown of the code:
'slider'= The name of the new image size (use this when adding the new image size to your template file).
525 = The image width
339 = The image height
true = The image will be cropped to the exact dimensions listed.
Usage:
Use a current template (index.php, single.php, etc.), or create your own. Place this inside the loop (usually just after the_title();) :
the_post_thumbnail('slider');
Now when you add a page or post that uses the template you added the code above, use the featured image option to upload an image. It will output to the size you've created.
Note:
This will only apply to newly uploaded images.
Did you try this : Thumbnail Custom Size
It is the best way to change Thumbnail Size.

Resources