Created
August 7, 2015 22:21
-
-
Save salmanbd96/ae1f69df191f10a30698 to your computer and use it in GitHub Desktop.
This file contains 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
Let's say you wanted to use the post thumbnail feature of WordPress, but had a whole archive of posts that would take too much time to go through. For new posts, you can be specific and use the feature as intended. For old posts, you just want to use the first image it finds in the content for the thumbnail, or a default if none present. | |
Add this to functions.php or make a functionality plugin: | |
function catch_that_image() { | |
global $post, $posts; | |
$first_img = ''; | |
ob_start(); | |
ob_end_clean(); | |
$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches); | |
$first_img = $matches[1][0]; | |
if(empty($first_img)) { | |
$first_img = "/path/to/default.png"; | |
} | |
return $first_img; | |
} | |
To use it, use this code in the loop: | |
if ( get_the_post_thumbnail($post_id) != '' ) { | |
echo '<a href="'; the_permalink(); echo '" class="thumbnail-wrapper">'; | |
the_post_thumbnail(); | |
echo '</a>'; | |
} else { | |
echo '<a href="'; the_permalink(); echo '" class="thumbnail-wrapper">'; | |
echo '<img src="'; | |
echo catch_that_image(); | |
echo '" alt="" />'; | |
echo '</a>'; | |
} | |
I found that has_post_thumbnail wasn't as reliable as the logic above. | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment