Last active
March 6, 2017 15:09
-
-
Save thebeckyhamm/22840ecd7b46f92e441b to your computer and use it in GitHub Desktop.
WordPress Responsive Background Images
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Responsive Featured Image Background - used to set custom responsive background on each page. I should probably turn this into a plugin at some point. | |
* Based on the work by Steven Slack: @link http://s2webpress.com//responsive-featured-image-function-in-wordpress-themes/ | |
* | |
*/ | |
function my_featured_image() { | |
// call the global post variable | |
global $post; | |
// If the page/post has a featured image | |
if (has_post_thumbnail()) : | |
// get the post thumbnail ID for the page or post | |
$post_thumbnail_id = get_post_thumbnail_id( $post->ID ); | |
// store the image sizes in an array. I only did medium and up as the WP default thumbnail size is very small | |
$img_sizes = array( 'medium', 'large', 'full' ); | |
// grab the URL for each image size and store in a variable | |
foreach ( $img_sizes as $img_size ) { | |
${ 'img_src_' . $img_size } = wp_get_attachment_image_src( $post_thumbnail_id, $img_size ); | |
} | |
// Set the media queries to whatever width works for your design | |
echo '<style type="text/css"> | |
.bg-image { | |
background-image: url(' . esc_url( $img_src_medium[0] ) . '); | |
background-size: cover; | |
background-repeat: no-repeat; | |
background-position: top center; | |
background-attachment: fixed; | |
} | |
@media screen and ( min-width: 400px ) { | |
.bg-image { | |
background-image: url(' . esc_url( $img_src_large[0] ) . '); | |
} | |
} | |
@media screen and ( min-width: 1000px ) { | |
.bg-image { | |
background-image: url(' . esc_url( $img_src_full[0] ) . '); | |
} | |
} | |
</style>'; | |
endif; | |
} // end function my_featured_image | |
add_action( 'wp_head', 'my_featured_image' ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment