TimThumb doesn’t work with WordPress Multisite

I’ve created a WordPress Multisite usin the sub-folder method.

  • site_name.com
  • site_name.com/es

The theme has the TimThumb script for image resizing.

Then I found a problem. My second site (es) was not loading any images.

  • site_name.com/wp-content/uploads/2011/09/05/image.jpg
  • site_name.com/wp-content/es/files/2011/09/05/image.jpg

WordPress builds a cool link for the “es” site but it doesn’t work if you use it with TimThumb.

If you open your FTP client you would find the file under:

/wp-content/blogs.dir/BLOG_ID/files/2011/09/05/image.jpg

That’s the path you will have to use with TimThumb.

Something like this:

function get_image_path ($post_id = null) {
    if ($post_id == null) {
        global $post;
        $post_id = $post->ID;
    }
    $theImageSrc = get_post_meta($post_id, 'Image', true);
    global $blog_id;
    if (isset($blog_id) && $blog_id > 0) {
        $imageParts = explode('/files/', $theImageSrc);
        if (isset($imageParts[1])) {
            $theImageSrc = '/blogs.dir/' . $blog_id . '/files/' . $imageParts[1];
        }
    }
    return $theImageSrc;
}

4 Responses to “TimThumb doesn’t work with WordPress Multisite”

  1. Euthenics April 12, 2012 at 2:48 pm #

    Can you advise on how to modified the code to get it work on a WP Multisite that’s using the sub-domain method?

    Thanks.

  2. rob February 18, 2013 at 5:42 am #

    where I should put the codes?
    I have the newest version and I can’t find that function.
    Do I have to add somewhere? then where it should be?
    I have put this code on timthumb.php but It doesn’t really help.

    please let me know if you have any solution.

    thanks,

    • Rick February 18, 2013 at 9:23 am #

      Hi there rob,

      This functions builds the link you’ll have to send to the TimbTumb.

      It retrieves the post image and returns the path. Then you use this path with the TimThumb.

      Something like this:

      <img src="timthumb.php?src=<?=get_image_path()?>" />

      Let me know if this helps.

Leave a Reply

Add <code> Some Code </code> by using this tags.