Title: Media Placeholders
Author: Weston Ruter
Published: <strong>آقوست 12, 2013</strong>
Last modified: فووریه 25, 2015

---

Search plugins

![](https://ps.w.org/media-placeholders/assets/banner-772x250.png?rev=755312)

This plugin **hasn’t been tested with the latest 3 major releases of WordPress**.
It may no longer be maintained or supported and may have compatibility issues when
used with more recent versions of WordPress.

![](https://s.w.org/plugins/geopattern-icon/media-placeholders_696969.svg)

# Media Placeholders

 By [Weston Ruter](https://profiles.wordpress.org/westonruter/)

[Download](https://downloads.wordpress.org/plugin/media-placeholders.zip)

 * [Details](https://azb.wordpress.org/plugins/media-placeholders/#description)
 * [Reviews](https://azb.wordpress.org/plugins/media-placeholders/#reviews)
 * [Development](https://azb.wordpress.org/plugins/media-placeholders/#developers)

 [Support](https://wordpress.org/support/plugin/media-placeholders/)

## Description

Activate this plugin to redirect all requests for missing uploaded images on your
blog to your favorite placeholder image service, such as [placehold.it](http://placehold.it)
or [placekitten.com](http://placekitten.com/). Note that although kittens are cute,
the placehold.it service is actually more useful because the background and foreground
color can remain consistant across all image sizes (e.g. full size vs thumbnail 
in a gallery), and so it is easier to see which images in a page are related to 
each other. (You can change the default placehold.it service to placekitten.com 
by defining `MISSING_UPLOADED_IMAGE_PLACEHOLDER_BUILTIN` to be `placekitten_color`
or `placekitten_grayscale`, or supplying those same values via the `missing_uploaded_image_placeholder_builtin`
filter).

**This plugin is for use during development only.** It is expected that this plugin
will be activated on your local development environment (e.g. on Vagrant or XAMPP),
or on your staging server. This plugin is especially useful when working on a team
where you share around a database dump but not the uploaded images (which should
always be omitted from the code repository), so if you give a database dump to another
developer but don’t include the uploaded images, with this plugin enabled they will
see a placeholder where the uploaded image appears. This plugin is an alternative
approach to what is offered by the [Uploads by Proxy](https://wordpress.org/plugins/uploads-by-proxy/)
plugin.

If you have applied the production database to another environment which lacks the
uploaded files, but you know that all images referenced in the database do exist
on production, you can define the `MISSING_UPLOADED_IMAGE_REDIRECT_SERVER` constant
or filter `missing_uploaded_image_redirect_server` to short-circuit the placeholder
service and redirect the image request to that server.

This plugin will not work if you are on a multisite network that uses the old system
for referring to uploaded files, where the URL includes `/files/` which is intercepted
by a rewrite rule and passed directly to `ms-files.php`. See [#19235](https://core.trac.wordpress.org/ticket/19235).
Similarly, make sure that missing uploaded files get served by the WordPress 404
handler, not Apache/Nginx. If you are using Nginx with the default Varying Vagrant
Vagrants config, you’ll want to remove `png|jpg|jpeg|gif` from the following location
rule in `nginx-wp-common.conf` (or remove it altogether):

    ```
    # Handle all static assets by serving the file directly. Add directives 
    # to send expires headers and turn off 404 error logging.
    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires 24h;
        log_not_found off;
    }
    ```

You can add support for your own favorite placeholder services by filtering `missing_uploaded_image_placeholder`.

For example, you can add this to your `functions.php` or drop it into a `mu-plugin`:

    ```
    <?php
    /**
     * Use Flickholdr as placeholder service
     * @param null|string $url
     * @param array $args  {attached_file, width, height, attachment_id}
     */
    function my_filter_missing_uploaded_image_placeholder( $url, $args ) {
        $attachment = get_post( $args['attachment_id'] );
        $tags = join( ' ', array(
            $attachment->post_title,
            $attachment->post_excerpt,
            $attachment->post_content,
            $attachment->_wp_attachment_image_alt
        ) );
        $tags = strtolower( preg_replace( '#[^A-Za-z0-9]+#', ',', $tags ) );
        $tags = trim( $tags, ',' );
        $url = sprintf( 'http://flickholdr.com/%d/%d/%s', $args['width'], $args['height'], $tags );
        return $url;
    }
    add_filter( 'missing_uploaded_image_placeholder', 'my_filter_missing_uploaded_image_placeholder', 10, 2 );
    ```

**Development of this plugin is done [on GitHub](https://github.com/x-team/wp-media-placeholders).
Pull requests welcome. Please see [issues](https://github.com/x-team/wp-media-placeholders/issues)
reported there before going to the plugin forum.**

## Reviews

![](https://secure.gravatar.com/avatar/ad4c663dfec95b9a11e9e6384e8440f339d0064892ae0df8df1301932e7d8ac1?
s=60&d=retro&r=g)

### 󠀁[Cool 😉](https://wordpress.org/support/topic/cool-1-2/)󠁿

 [holgerhubbs](https://profiles.wordpress.org/holgerhubbs/) سپتامبر 3, 2016

Thank you!

 [ Read all 2 reviews ](https://wordpress.org/support/plugin/media-placeholders/reviews/)

## Contributors & Developers

“Media Placeholders” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Weston Ruter ](https://profiles.wordpress.org/westonruter/)
 *   [ XWP ](https://profiles.wordpress.org/xwp/)

[Translate “Media Placeholders” into your language.](https://translate.wordpress.org/projects/wp-plugins/media-placeholders)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/media-placeholders/),
check out the [SVN repository](https://plugins.svn.wordpress.org/media-placeholders/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/media-placeholders/)
by [RSS](https://plugins.trac.wordpress.org/log/media-placeholders/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.9.2

Apply PHPCS fixes and integrate Travis CI

#### 0.9.1

Prevent default WordPress 404 handler from breaking placeholder redirect ([#5](https://github.com/x-team/wp-media-placeholders/pull/5))

#### 0.9

First Release

## Meta

 *  Version **0.9.2**
 *  Last updated **11 ایل‌لر ago**
 *  Active installations **70+**
 *  WordPress version ** 3.5 or higher **
 *  Tested up to **3.6.1**
 *  Language
 * [English (US)](https://wordpress.org/plugins/media-placeholders/)
 * Tags
 * [404](https://azb.wordpress.org/plugins/tags/404/)[development](https://azb.wordpress.org/plugins/tags/development/)
   [images](https://azb.wordpress.org/plugins/tags/images/)[placeholders](https://azb.wordpress.org/plugins/tags/placeholders/)
   [uploads](https://azb.wordpress.org/plugins/tags/uploads/)
 *  [Advanced View](https://azb.wordpress.org/plugins/media-placeholders/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  2 5-star reviews     ](https://wordpress.org/support/plugin/media-placeholders/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/media-placeholders/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/media-placeholders/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/media-placeholders/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/media-placeholders/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/media-placeholders/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/media-placeholders/reviews/)

## Contributors

 *   [ Weston Ruter ](https://profiles.wordpress.org/westonruter/)
 *   [ XWP ](https://profiles.wordpress.org/xwp/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/media-placeholders/)