Ask your WordPress questions! Pay money and get answers fast! (more info)

Display custom image size for customizer uploaded image WordPress


I have a customizer setting for an image on my homepage

$wp_manager->add_setting( 'home_image', array(
'default' => '',
) );

$wp_manager->add_control( new WP_Customize_Image_Control( $wp_manager, 'home_image', array(
'label' => 'Homepage image',
'section' => 'customiser_demo_section',
'settings' => 'home_image',
'priority' => 5
) ) );

// Home image
add_image_size( 'home-image', 768, 9999 );

The image uploads and displays, however I am trying to figure out how to display a custom image size version of the image. My custom image size is called 'home-image' and the following code does not display the correct image size.

$home_image = get_theme_mod( 'home_image', 'type=image&size=home-image');
echo "\n\t\t\t\t\t<img src='$home_image' />\n";

Wordpress is generating this image correctly in the uploads folder.

Any ideas, how do I display the image size 'home-image' for a customizer image field?

Answers (1)


Romel Apuya answers:

echo wp_get_attachment_image( $id, 'your-custom-size' );

you must know the $id of the Media Library image

assuming its 10. so in your code

echo wp_get_attachment_image( 10, 'home-image' );

Nick comments:

Cool, so how do I get the media ID programmatically ? Can I get it from home_image somehow?

Romel Apuya comments:

its a template right??
you can declare

global $post;

and get the id

$id = get_the_ID();

Romel Apuya comments:

$id = $post->ID;

rather than
$id = get_the_ID();

Nick comments:

That didn't really work fro me, but I have found this little function, that works a treat

Romel Apuya comments:

ok. good to know...