Contributors: ericmann, 10up
Donate link: https://eamann.com
Tags: CDN, images, performance
Requires at least: 3.8.1
Tested up to: 4.5.2
Stable tag: 0.4.0
License: GPLv2 or later
License URI: https://github.com/ericmann/dynamic-cdn/blob/master/LICENSE.md
Dynamic CDN for front-end assets.
Dynamic solution for rewriting image asset URLs to a hosted content delivery network (CDN) with optional domain sharding for concurrent downloads.
This plugin is based heavily on the CDN dropin from Mark Jaquith's WP_Stack (https://github.com/markjaquith/WP-Stack).
- Upload the entire
/dynamic-cdn
directory to the/wp-content/plugins/
directory. - Activate Dynamic CDN through the 'Plugins' menu in WordPress.
Yes. The plugin, as designed, will work just fine in the mu-plugins directory. We highly recommend a second mu-plugin be added to configure the CDN domains used by the system.
In a function wired to dynamic_cdn_first_loaded
, you'll reference the ->add_domain()
method of the Dynamic_CDN
object. For example:
function my_cdn_domains() {
$manager = DomainManager::last();
$manager->add( 'cdn0.mydomain.com' );
$manager->add( 'cdn1.mydomain.com' );
$manager->add( 'cdn2.mydomain.com' );
}
add_action( 'dynamic_cdn_first_loaded', 'my_cdn_domains' );
Simply define a DYNCDN_DOMAINS constant that's a comma-delimited list of your cdn domains. For example:
define( 'DYNCDN_DOMAINS', 'cdn0.mydomain.com,cdn1.mydomain.com,cdn2.mydomain.com' );
Hopefully not. If you haven't added any domains the plugin will not rewrite anything, bypassing your images entirely.
None at this time.
- New: Unit tests for core functionality
- Fix: Ensure srcsets don't filter in admin views
- New: Add support for WordPress 4.4 srcsets
- New: CDN domains can be added with a constant.
- Fix: Make domain mapping multisite aware. props @trepmal
- First release
Domain management has moved from a general-purpose class to a purpose-built DomainManager
object. This object is
instantiated with your current site's domain name, and can be accessed throught the static DomainManager::last()
helper.
(This method automatically returns the last-instantiated domain manager). If you weren't manipulating CdN domains
programmatically, you won't need to change anything at all.
First Release