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.
<?php
$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?
Romel Apuya answers:
<?php
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
<?php
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
https://pippinsplugins.com/retrieve-attachment-id-from-image-url/
Romel Apuya comments:
ok. good to know...