Tutorial: How to get image path on a post in WordPress efficiently

This is something that WordPress currently doesn’t support yet. You will face the problem of retrieving image on a particular post on the loop while you are working on WordPress theme or plugin. WordPress doesn’t provides you with a method that you can use to retrieve the images on the post and you would have to search all over the internet to find someone sharing their secret with you. Thus, rather than using a complex or methods built by others, i personally have a much simple and efficient way of doing this.

The Problem

I wanted to retrieve all images on a particular post under a category and make it into a gallery. However, WordPress doesn’t provides such method. Furthermore, the methods provide by others seems to complex this particular function. I want a simple and efficient way of doing this. Not a redundant one.

The Solution

The best way is to look into the core of PHP and search for a particular function that do this automatically. I search quite long and finally found preg_match_all from PHP core build. However, it return the number of match element instead of the result of the URL! But if you read closely it can also retrieve the matched result. So, how do you retrieve the images? Answer is regular expression! What i did was as follow,

$content = get_the_content();
preg_match_all('/src="https?://[Sw]+"/i', $content, $matches, PREG_SET_ORDER);
foreach($matches as $e)
{
        echo '<div class="slideshow_box"><img width="106px" '.$e[0].'/></div>';
}

Basically, i retrieve the content using WordPress method ‘get_the_content()’. Using the preg_match_all PHP function i placed a regular expression that will retrieve all string that start with ’src=”‘ and end with a single ‘”‘ quote symbol. You can read more on regular expression on Google (although until now i still can’t find a real good reference). it will return the number of match result normally but with the additional variable, $matches which store all matched string, we can easily get all images on a post in WordPress without building additional big function to do this. You can remove ’src=’ to retrieve something like ‘www.hungred.com’ instead of ’src=”www.hungred.com’ but if you know regular expression better than i do, this will easily be a piece of cake for you.

The Conclusion

This may seems to be an obvious thing to do. But you may be surprise after doing some Google search that many people actually built up function just to accomplished this and no one is sharing such sweet method with you! This is just to write out to help others who are still searching for a better solution than looking at complex method created by others. Hope it help.

 

Like this post? Share it!

digg 48 Tutorial: How to get image path on a post in Wordpress efficiently reddit 48 Tutorial: How to get image path on a post in Wordpress efficiently stumbleupon 48 Tutorial: How to get image path on a post in Wordpress efficiently delicious 48 Tutorial: How to get image path on a post in Wordpress efficiently furl 48 Tutorial: How to get image path on a post in Wordpress efficiently technorati 48 Tutorial: How to get image path on a post in Wordpress efficiently google 48 Tutorial: How to get image path on a post in Wordpress efficiently myspace 48 Tutorial: How to get image path on a post in Wordpress efficiently facebook 48 Tutorial: How to get image path on a post in Wordpress efficiently twitter 48 Tutorial: How to get image path on a post in Wordpress efficiently
share save 171 16 Tutorial: How to get image path on a post in Wordpress efficiently

No related posts.

About Clay

I am Clay who is the main writer for this website. I own a small web hosting company in Malaysia and i'm available to be hired as individual contractor on elance. You can find me on twitter.
This entry was posted in How-to, Open Source and tagged . Bookmark the permalink.

7 Responses to Tutorial: How to get image path on a post in WordPress efficiently

  1. Pingback: Tutorial: How to get images path on a post in Wordpress efficiently – Hungred.com

  2. Pingback: Tutorial: How to get images path on a post in Wordpress … – Wordpress Plugins

  3. Pingback: Baby names search - Search for i

  4. Mael says:

    Is it more performant than using a function ?
    I actually use one wich find me the first image of a post.
    I guess I can use regular exprssion to accomplish this, but before trying learning it, I would know if it’s worth the pain :) !

  5. Clay says:

    it is definitely better using a regular expression. Imagine having 20 line of code in a function compare to 1-4 lines in regular expression. Furthermore, searching usually uses regular expression to further enhance the performance. No loop is the best.

  6. Mael says:

    Thanks for answer :) !
    I read a bit about regex, I try to understand. It’s a big challenge for non-coder. How would you display only the first image ?
    I made some tutorials, but can’t figure out how to say “only the first chain you find, please” !
    I now understand why regex are so rare in WP functions…

  7. Clay says:

    hahaha..ya regex is quite challenging but practice make perfect. The easily way without writing a new code is to add in a break; in the loop after it has done with the first image :)