Amazon CloudFront is a content distribution network (CDN) that can help you survive a huge amount of load in a short amount of time. What's the easiest way to configure WordPress to host its files (media library, CSS, plugin files, theme) on S3/CloudFront?

(I'm currently using W3 Total Cache to do this.)

link|improve this question
2  
I was going to answer with wordpress.org/extend/plugins/w3-total-cache , as far as I know it's the best solution for doing this. What does it lack that you need? – artlung Aug 12 '10 at 0:37
1  
Yeah, what about W3 Total Cache doesn't meet your needs? – MikeSchinkel Aug 12 '10 at 5:56
It wasn't really about me not knowing the answer - it's about documenting the answer for all of humanity. ;-) – Brent Ozar Aug 18 '10 at 13:08
feedback

2 Answers

I think the the W3 Total Cache Plugin http://wordpress.org/extend/plugins/w3-total-cache/ can help you..

link|improve this answer
feedback

The plugin works fine; alternative you can use a own function to replace the bloginf() to your CDN-Url; Example:

replace the url in content:

// replace content for CDN
if ( !function_exists('fb_add_static_content_url') ) {
    function fb_add_static_content_url($content) {
            if ( is_admin() ) // eigentlich überflüssig
                return $content;

            $wpurl = get_bloginfo('wpurl');

            $search = array(
                $wpurl . '/wp-content/images/',
                $wpurl . '/wp-content/download/',
            );

            $replace = array(
                'http://cdn1.bueltge.de/',
                'http://cdn2.bueltge.de/',
            );

            return str_replace( $search, $replace, $content );
    }
    add_filter( 'the_content', 'fb_add_static_content_url' );
}

replace stylesheet_directoy and others:

// replace for CDN
if ( !function_exists('fb_add_static_wpurl') ) {
    function fb_add_static_wpurl($info, $show) {

        if ( is_admin() )
            return $info;

        $keys = array(
            'url',
            'wpurl',
            'stylesheet_url',
            'stylesheet_directory',
            'template_url',
            'template_directory',
            );

        if ( in_array( $show, $keys ) ) {

            $wpurl = get_bloginfo('wpurl');

            $search = array(
                $wpurl . '/wp-content/images/',
                $wpurl . '/wp-content/download/',
                $wpurl . '/wp-content/themes/',
                $wpurl . '/wp-content/plugins/',
            );

            $replace = array(
                'http://cdn1.bueltge.de/',
                'http://cdn2.bueltge.de/',
                'http://cdn3.bueltge.de/',
                'http://cdn3.bueltge.de/',
            );

            return str_replace( $search, $replace, $info );

        } else {
            return $info;
        }
    }
    add_filter( 'bloginfo_url', 'fb_add_static_wpurl', 9999, 2 );
}

replace the template_directory and other:

function fb_add_static_stylesheet_uri($uri) {

            if ( is_admin() )
                return $uri;

            $wpurl = get_bloginfo('wpurl');

            $search = array(
                $wpurl . '/wp-content/images/',
                $wpurl . '/wp-content/download/',
                $wpurl . '/wp-content/themes/',
                $wpurl . '/wp-content/plugins/',
            );

            $replace = array(
                'http://cdn1.bueltge.de/',
                'http://cdn2.bueltge.de/',
                'http://cdn3.bueltge.de/',
                'http://cdn3.bueltge.de/',
            );
            return str_replace( $search, $replace, $uri );

}
add_filter ( 'template_directory_uri', 'fb_add_static_stylesheet_uri' );
add_filter ( 'stylesheet_uri', 'fb_add_static_stylesheet_uri' );
add_filter ( 'stylesheet_directory_uri', 'fb_add_static_stylesheet_uri' );
link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.