Created
April 6, 2012 00:08
-
-
Save wycks/2315295 to your computer and use it in GitHub Desktop.
Rewrite static theme assets and plugins directory (WordPress)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// rewrite /wp-content/themes/theme-name/css/ to /css/ | |
// rewrite /wp-content/themes/theme-name/js/ to /js/ | |
// rewrite /wp-content/themes/theme-name/img/ to /img/ | |
// rewrite /wp-content/plugins/ to /plugins/ | |
function roots_flush_rewrites() { | |
global $wp_rewrite; | |
$wp_rewrite->flush_rules(); | |
} | |
function roots_add_rewrites($content) { | |
$theme_name = next(explode('/themes/', get_stylesheet_directory())); | |
global $wp_rewrite; | |
$roots_new_non_wp_rules = array( | |
'css/(.*)' => 'wp-content/themes/'. $theme_name . '/css/$1', | |
'js/(.*)' => 'wp-content/themes/'. $theme_name . '/js/$1', | |
'img/(.*)' => 'wp-content/themes/'. $theme_name . '/img/$1', | |
'plugins/(.*)' => 'wp-content/plugins/$1' | |
); | |
$wp_rewrite->non_wp_rules += $roots_new_non_wp_rules; | |
} | |
add_action('admin_init', 'roots_flush_rewrites'); | |
function roots_clean_assets($content) { | |
$theme_name = next(explode('/themes/', $content)); | |
$current_path = '/wp-content/themes/' . $theme_name; | |
$new_path = ''; | |
$content = str_replace($current_path, $new_path, $content); | |
return $content; | |
} | |
function roots_clean_plugins($content) { | |
$current_path = '/wp-content/plugins'; | |
$new_path = '/plugins'; | |
$content = str_replace($current_path, $new_path, $content); | |
return $content; | |
} | |
add_action('generate_rewrite_rules', 'roots_add_rewrites'); | |
if (!is_admin()) { | |
add_filter('plugins_url', 'roots_clean_plugins'); | |
add_filter('bloginfo', 'roots_clean_assets'); | |
add_filter('stylesheet_directory_uri', 'roots_clean_assets'); | |
add_filter('template_directory_uri', 'roots_clean_assets'); | |
add_filter('script_loader_src', 'roots_clean_plugins'); | |
add_filter('style_loader_src', 'roots_clean_plugins'); | |
?> |
On twenty thirteen theme, would this go in the functions.php?
just for completion: this go in functions.php, of course, in every theme.
Only variables should be passed by reference
error line
$theme_name = next(explode('/themes/', $content));
@Brushez check my fork and comment to get rid of that error.
$theme_name = next(explode('/themes/', $content));
to
$nval = explode( '/themes/', $content );
$theme_name = next( $nval );
$theme_name = next(explode('/themes/', get_stylesheet_directory()));
to
$mval = explode( '/themes/', get_stylesheet_directory() );
$theme_name = next( $mval );
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for the contribution. Can you include some commenting or documentation on how this is to be used and what it might break?