Version Description
- New Feature: Enable Minify CSS/JS on the fly when admin is logged in (for debugging purposes) - via /?wpacu_css_minify
- Updated "Tools" -> "System Info": Has database information related to the Asset CleanUp's entries
- Option to override "administrator" (default) role, in order to acesss plugin's pages
- Do not trigger Asset CleanUp Pro on REST Requests, WPBakery Page Builder Edit Mode, Brizy Page Builder Edit Mode
- Avoid notice errors if some "SG Optimizer" features are enabled
- Minify CSS: Compatibility with "Simple Custom CSS" plugin
- Match sidebar and top bar menus; Allow unloading of CSS/JS on the fly (via URI request) for debugging purposes; Added coloured left border for assets that had their position changed to easily distinguish them
- New Feature: Ignore dependency rule and keep the "children" loaded
- New Feature: CSS/JS "Notes" (useful to remember why you have unloaded or decided to keep a specific file)
- Bug Fix: Posts' Metas (e.g. load exceptions) were not imported
- Bug Fix: Make sure specific elements from "Site-Wide Common Unloads" are properly imported/exported
Download this release
Release Info
Developer | gabelivan |
Plugin | Asset CleanUp: Page Speed Booster |
Version | 1.3.2.9 |
Comparing to | |
See all releases |
Code changes from version 1.3.2.8 to 1.3.2.9
- classes/CleanUp.php +4 -31
- classes/Main.php +5 -3
- classes/Misc.php +6 -1
- classes/OptimiseAssets/MinifyCss.php +11 -3
- classes/OptimiseAssets/OptimizeCommon.php +10 -0
- classes/OptimiseAssets/OptimizeCss.php +10 -5
- classes/OptimiseAssets/OptimizeJs.php +5 -0
- early-triggers.php +14 -2
- freemius/templates/forms/deactivation/form.php +4 -4
- readme.txt +15 -2
- wpacu.php +2 -2
classes/CleanUp.php
CHANGED
@@ -54,13 +54,10 @@ class CleanUp
|
|
54 |
// <link rel='shortlink' href="https://yourdomain.com/?p=1">
|
55 |
remove_action('wp_head', 'wp_shortlink_wp_head');
|
56 |
|
57 |
-
//
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
});
|
62 |
-
}, PHP_INT_MAX);
|
63 |
-
}
|
64 |
|
65 |
// Remove "Post's Relational Links"?
|
66 |
if ($settings['remove_posts_rel_links'] == 1) {
|
@@ -399,30 +396,6 @@ class CleanUp
|
|
399 |
return $htmlSource;
|
400 |
}
|
401 |
|
402 |
-
/**
|
403 |
-
* @param $htmlSource
|
404 |
-
*
|
405 |
-
* @return mixed
|
406 |
-
*/
|
407 |
-
public function cleanRelShortLink($htmlSource)
|
408 |
-
{
|
409 |
-
$regExpPattern = '#<link[^>]*shortlink[^>]*(>)#Usmi';
|
410 |
-
|
411 |
-
preg_match_all($regExpPattern, $htmlSource, $matchedLinks, PREG_SET_ORDER);
|
412 |
-
|
413 |
-
if (! isset($matchedLinks[0][0])) {
|
414 |
-
return $htmlSource;
|
415 |
-
}
|
416 |
-
|
417 |
-
$linkTag = $matchedLinks[0][0];
|
418 |
-
|
419 |
-
if (stripos($linkTag, '<link') === 0 && substr($linkTag, -1) === '>' && strip_tags($linkTag) === '') {
|
420 |
-
$htmlSource = str_replace($matchedLinks[0][0], '', $htmlSource);
|
421 |
-
}
|
422 |
-
|
423 |
-
return $htmlSource;
|
424 |
-
}
|
425 |
-
|
426 |
/**
|
427 |
*
|
428 |
*/
|
54 |
// <link rel='shortlink' href="https://yourdomain.com/?p=1">
|
55 |
remove_action('wp_head', 'wp_shortlink_wp_head');
|
56 |
|
57 |
+
// link: <https://yourdomainname.com/wp-json/>; rel="https://api.w.org/", <https://yourdomainname.com/?p=[post_id_here]>; rel=shortlink
|
58 |
+
remove_action('template_redirect', 'wp_shortlink_header', 11);
|
59 |
+
|
60 |
+
}
|
|
|
|
|
|
|
61 |
|
62 |
// Remove "Post's Relational Links"?
|
63 |
if ($settings['remove_posts_rel_links'] == 1) {
|
396 |
return $htmlSource;
|
397 |
}
|
398 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
399 |
/**
|
400 |
*
|
401 |
*/
|
classes/Main.php
CHANGED
@@ -249,9 +249,11 @@ class Main
|
|
249 |
add_action( 'wp_print_footer_scripts', array( $this, 'filterStyles' ), 1 );
|
250 |
}
|
251 |
|
252 |
-
|
253 |
-
|
254 |
-
array(
|
|
|
|
|
255 |
|
256 |
$this->wpacuHtmlNoticeForAdmin();
|
257 |
}
|
249 |
add_action( 'wp_print_footer_scripts', array( $this, 'filterStyles' ), 1 );
|
250 |
}
|
251 |
|
252 |
+
// Only trigger it within the Dashboard when an Asset CleanUp page is accessed and the transient is non-existent or expired
|
253 |
+
if (is_admin() && (isset($_GET['page']) && strpos($_GET['page'], WPACU_PLUGIN_ID . '_') === 0) && ! get_transient('wpacu_active_plugins_icons')) {
|
254 |
+
add_action('admin_footer', array($this, 'ajaxFetchActivePluginsJsFooterCode'));
|
255 |
+
add_action('wp_ajax_' . WPACU_PLUGIN_ID . '_fetch_active_plugins_icons', array($this, 'ajaxFetchActivePluginsIcons'));
|
256 |
+
}
|
257 |
|
258 |
$this->wpacuHtmlNoticeForAdmin();
|
259 |
}
|
classes/Misc.php
CHANGED
@@ -484,11 +484,16 @@ class Misc
|
|
484 |
}
|
485 |
|
486 |
foreach ($allActivePlugins as $activePlugin) {
|
487 |
-
|
488 |
continue;
|
489 |
}
|
490 |
|
491 |
list($pluginSlug) = explode('/', $activePlugin);
|
|
|
|
|
|
|
|
|
|
|
492 |
|
493 |
// Avoid the calls to WordPress.org as much as possible
|
494 |
// as it would decrease the resources and timing to fetch the data we need
|
484 |
}
|
485 |
|
486 |
foreach ($allActivePlugins as $activePlugin) {
|
487 |
+
if (! is_string($activePlugin) || strpos($activePlugin, '/') === false) {
|
488 |
continue;
|
489 |
}
|
490 |
|
491 |
list($pluginSlug) = explode('/', $activePlugin);
|
492 |
+
$pluginSlug = trim($pluginSlug);
|
493 |
+
|
494 |
+
if (! $pluginSlug) {
|
495 |
+
continue;
|
496 |
+
}
|
497 |
|
498 |
// Avoid the calls to WordPress.org as much as possible
|
499 |
// as it would decrease the resources and timing to fetch the data we need
|
classes/OptimiseAssets/MinifyCss.php
CHANGED
@@ -34,9 +34,13 @@ class MinifyCss
|
|
34 |
$cssMinifyList = array();
|
35 |
|
36 |
// [Start] Collect for caching
|
37 |
-
|
38 |
-
|
39 |
-
|
|
|
|
|
|
|
|
|
40 |
$minifyValues = $this->maybeMinifyIt($value);
|
41 |
|
42 |
if (! empty($minifyValues)) {
|
@@ -74,6 +78,10 @@ class MinifyCss
|
|
74 |
|
75 |
preg_match_all($regExpPattern, OptimizeCommon::cleanerHtmlSource($htmlSource), $matchesSourcesFromTags, PREG_SET_ORDER);
|
76 |
|
|
|
|
|
|
|
|
|
77 |
foreach ($matchesSourcesFromTags as $matches) {
|
78 |
$linkSourceTag = $matches[0];
|
79 |
|
34 |
$cssMinifyList = array();
|
35 |
|
36 |
// [Start] Collect for caching
|
37 |
+
$wpStylesDone = $wp_styles->done;
|
38 |
+
$wpStylesRegistered = $wp_styles->registered;
|
39 |
+
|
40 |
+
foreach ($wpStylesDone as $handle) {
|
41 |
+
if (isset($wpStylesRegistered[$handle])) {
|
42 |
+
$value = $wpStylesRegistered[$handle];
|
43 |
+
|
44 |
$minifyValues = $this->maybeMinifyIt($value);
|
45 |
|
46 |
if (! empty($minifyValues)) {
|
78 |
|
79 |
preg_match_all($regExpPattern, OptimizeCommon::cleanerHtmlSource($htmlSource), $matchesSourcesFromTags, PREG_SET_ORDER);
|
80 |
|
81 |
+
if (empty($matchesSourcesFromTags)) {
|
82 |
+
return $htmlSource;
|
83 |
+
}
|
84 |
+
|
85 |
foreach ($matchesSourcesFromTags as $matches) {
|
86 |
$linkSourceTag = $matches[0];
|
87 |
|
classes/OptimiseAssets/OptimizeCommon.php
CHANGED
@@ -527,6 +527,16 @@ class OptimizeCommon
|
|
527 |
return $wpContentUrl;
|
528 |
}
|
529 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
530 |
/**
|
531 |
* URLs with query strings are not loading Optimised Assets (e.g. combine CSS files into one file)
|
532 |
* However, there are exceptions such as the ones below (preview, debugging purposes)
|
527 |
return $wpContentUrl;
|
528 |
}
|
529 |
|
530 |
+
/**
|
531 |
+
* @param $assetContent
|
532 |
+
*
|
533 |
+
* @return mixed
|
534 |
+
*/
|
535 |
+
public static function stripSourceMap($assetContent)
|
536 |
+
{
|
537 |
+
return str_replace('# sourceMappingURL=', '# From Source Map: ', $assetContent);
|
538 |
+
}
|
539 |
+
|
540 |
/**
|
541 |
* URLs with query strings are not loading Optimised Assets (e.g. combine CSS files into one file)
|
542 |
* However, there are exceptions such as the ones below (preview, debugging purposes)
|
classes/OptimiseAssets/OptimizeCss.php
CHANGED
@@ -98,7 +98,7 @@ class OptimizeCss
|
|
98 |
// Fetch the DOM, and then set a new transient
|
99 |
$documentForCSS = new \DOMDocument();
|
100 |
|
101 |
-
libxml_use_internal_errors(
|
102 |
$documentForCSS->loadHTML( $htmlSource );
|
103 |
|
104 |
$storageJsonContents = array();
|
@@ -349,19 +349,24 @@ HTML;
|
|
349 |
);
|
350 |
}
|
351 |
|
352 |
-
$
|
353 |
|
354 |
-
if ($
|
355 |
// Do not combine it if it contains "@import"
|
356 |
-
if (stripos($
|
357 |
unset($localAssetsPaths[$assetHref]);
|
358 |
$linkHrefKey = array_search($assetHref, $linkHrefs);
|
359 |
unset($linkHrefs[$linkHrefKey]);
|
360 |
continue;
|
361 |
}
|
362 |
|
|
|
|
|
|
|
|
|
|
|
363 |
$finalAssetsContents .= '/*** Source: '.str_replace(ABSPATH, '/', $localAssetsPath)." ***/\n";
|
364 |
-
$finalAssetsContents .= self::maybeFixCssBackgroundUrls($
|
365 |
}
|
366 |
}
|
367 |
|
98 |
// Fetch the DOM, and then set a new transient
|
99 |
$documentForCSS = new \DOMDocument();
|
100 |
|
101 |
+
libxml_use_internal_errors(true);
|
102 |
$documentForCSS->loadHTML( $htmlSource );
|
103 |
|
104 |
$storageJsonContents = array();
|
349 |
);
|
350 |
}
|
351 |
|
352 |
+
$cssContent = @file_get_contents($localAssetsPath);
|
353 |
|
354 |
+
if ($cssContent) {
|
355 |
// Do not combine it if it contains "@import"
|
356 |
+
if (stripos($cssContent, '@import') !== false) {
|
357 |
unset($localAssetsPaths[$assetHref]);
|
358 |
$linkHrefKey = array_search($assetHref, $linkHrefs);
|
359 |
unset($linkHrefs[$linkHrefKey]);
|
360 |
continue;
|
361 |
}
|
362 |
|
363 |
+
// Does it have a source map? Strip it
|
364 |
+
if (strpos($cssContent, 'sourceMappingURL') !== false) {
|
365 |
+
$cssContent = OptimizeCommon::stripSourceMap($cssContent);
|
366 |
+
}
|
367 |
+
|
368 |
$finalAssetsContents .= '/*** Source: '.str_replace(ABSPATH, '/', $localAssetsPath)." ***/\n";
|
369 |
+
$finalAssetsContents .= self::maybeFixCssBackgroundUrls($cssContent, $pathToAssetDir . '/') . "\n\n";
|
370 |
}
|
371 |
}
|
372 |
|
classes/OptimiseAssets/OptimizeJs.php
CHANGED
@@ -482,6 +482,11 @@ HTML;
|
|
482 |
$jsContent = @file_get_contents($localAssetsPath);
|
483 |
|
484 |
if ($jsContent) {
|
|
|
|
|
|
|
|
|
|
|
485 |
$finalJsContentsIndex = 1;
|
486 |
|
487 |
$finalJsContentsGroupsArray[$finalJsContentsIndex][] = '/*** Source: '.str_replace(ABSPATH, '/', $localAssetsPath)." ***/\n" . self::maybeDoJsFixes($jsContent, $pathToAssetDir . '/') . "\n\n";
|
482 |
$jsContent = @file_get_contents($localAssetsPath);
|
483 |
|
484 |
if ($jsContent) {
|
485 |
+
// Does it have a source map? Strip it
|
486 |
+
if (strpos($jsContent, 'sourceMappingURL') !== false) {
|
487 |
+
$jsContent = OptimizeCommon::stripSourceMap($jsContent);
|
488 |
+
}
|
489 |
+
|
490 |
$finalJsContentsIndex = 1;
|
491 |
|
492 |
$finalJsContentsGroupsArray[$finalJsContentsIndex][] = '/*** Source: '.str_replace(ABSPATH, '/', $localAssetsPath)." ***/\n" . self::maybeDoJsFixes($jsContent, $pathToAssetDir . '/') . "\n\n";
|
early-triggers.php
CHANGED
@@ -29,6 +29,11 @@ if (! function_exists('assetCleanUpNoLoad')) {
|
|
29 |
return true;
|
30 |
}
|
31 |
|
|
|
|
|
|
|
|
|
|
|
32 |
// "Oxygen" plugin: Edit Mode
|
33 |
if (isset($_GET['ct_builder'], $_GET['ct_inner']) && $_GET['ct_builder'] === 'true' && $_GET['ct_inner'] === 'true') {
|
34 |
return true;
|
@@ -44,11 +49,18 @@ if (! function_exists('assetCleanUpNoLoad')) {
|
|
44 |
return true;
|
45 |
}
|
46 |
|
47 |
-
// Thrive Architect
|
48 |
if (isset($_GET['action'], $_GET['tve']) && $_GET['action'] === 'architect' && $_GET['tve'] === 'true' && is_admin()) {
|
49 |
return true;
|
50 |
}
|
51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
// Page Builder by SiteOrigin
|
53 |
if (isset($_GET['action'], $_GET['so_live_editor']) && $_GET['action'] === 'edit' && $_GET['so_live_editor'] && is_admin()) {
|
54 |
return true;
|
@@ -77,7 +89,7 @@ if (! function_exists('assetCleanUpNoLoad')) {
|
|
77 |
}
|
78 |
|
79 |
// REST Request
|
80 |
-
if ((strpos($_SERVER['REQUEST_URI'], '/wp-json/wp/v2/') !== false)
|
81 |
return true;
|
82 |
}
|
83 |
|
29 |
return true;
|
30 |
}
|
31 |
|
32 |
+
// "Elementor" plugin: Do not trigger the plugin on AJAX calls
|
33 |
+
if (isset($_POST['action']) && (strpos($_POST['action'], 'elementor_') === 0) && (! empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest')) {
|
34 |
+
return true;
|
35 |
+
}
|
36 |
+
|
37 |
// "Oxygen" plugin: Edit Mode
|
38 |
if (isset($_GET['ct_builder'], $_GET['ct_inner']) && $_GET['ct_builder'] === 'true' && $_GET['ct_inner'] === 'true') {
|
39 |
return true;
|
49 |
return true;
|
50 |
}
|
51 |
|
52 |
+
// Thrive Architect (Dashboard)
|
53 |
if (isset($_GET['action'], $_GET['tve']) && $_GET['action'] === 'architect' && $_GET['tve'] === 'true' && is_admin()) {
|
54 |
return true;
|
55 |
}
|
56 |
|
57 |
+
// Thrive Architect (iFrame)
|
58 |
+
$tveFrameFlag = defined('TVE_FRAME_FLAG') ? TVE_FRAME_FLAG : 'tcbf';
|
59 |
+
|
60 |
+
if (isset($_GET['tve'], $_GET[$tveFrameFlag]) && $_GET['tve'] === 'true') {
|
61 |
+
return true;
|
62 |
+
}
|
63 |
+
|
64 |
// Page Builder by SiteOrigin
|
65 |
if (isset($_GET['action'], $_GET['so_live_editor']) && $_GET['action'] === 'edit' && $_GET['so_live_editor'] && is_admin()) {
|
66 |
return true;
|
89 |
}
|
90 |
|
91 |
// REST Request
|
92 |
+
if ((defined('REST_REQUEST') && REST_REQUEST) || (strpos($_SERVER['REQUEST_URI'], '/wp-json/wp/v2/') !== false)) {
|
93 |
return true;
|
94 |
}
|
95 |
|
freemius/templates/forms/deactivation/form.php
CHANGED
@@ -31,10 +31,10 @@
|
|
31 |
} else {
|
32 |
$reason_internal_message = '';
|
33 |
}
|
34 |
-
|
35 |
$reason_input_type = ( ! empty( $reason['input_type'] ) ? $reason['input_type'] : '' );
|
36 |
$reason_input_placeholder = ( ! empty( $reason['input_placeholder'] ) ? $reason['input_placeholder'] : '' );
|
37 |
-
|
38 |
$reason_list_item_html = <<< HTML
|
39 |
<li class="{$list_item_classes}"
|
40 |
data-input-type="{$reason_input_type}"
|
@@ -182,7 +182,7 @@ HTML;
|
|
182 |
*
|
183 |
* @author Leo Fajardo (@leorw)
|
184 |
* @since 1.2.2
|
185 |
-
*
|
186 |
* @since 1.2.2.7 Don't trigger the deactivation feedback form if activating the premium version of the theme.
|
187 |
*/
|
188 |
?>
|
@@ -344,7 +344,7 @@ HTML;
|
|
344 |
if (_parent.hasClass('has-input')) {
|
345 |
var inputType = _parent.data('input-type'),
|
346 |
inputPlaceholder = _parent.data('input-placeholder'),
|
347 |
-
|
348 |
|
349 |
_parent.append($(reasonInputHtml));
|
350 |
_parent.find('input, textarea').attr('placeholder', inputPlaceholder).focus();
|
31 |
} else {
|
32 |
$reason_internal_message = '';
|
33 |
}
|
34 |
+
|
35 |
$reason_input_type = ( ! empty( $reason['input_type'] ) ? $reason['input_type'] : '' );
|
36 |
$reason_input_placeholder = ( ! empty( $reason['input_placeholder'] ) ? $reason['input_placeholder'] : '' );
|
37 |
+
|
38 |
$reason_list_item_html = <<< HTML
|
39 |
<li class="{$list_item_classes}"
|
40 |
data-input-type="{$reason_input_type}"
|
182 |
*
|
183 |
* @author Leo Fajardo (@leorw)
|
184 |
* @since 1.2.2
|
185 |
+
*
|
186 |
* @since 1.2.2.7 Don't trigger the deactivation feedback form if activating the premium version of the theme.
|
187 |
*/
|
188 |
?>
|
344 |
if (_parent.hasClass('has-input')) {
|
345 |
var inputType = _parent.data('input-type'),
|
346 |
inputPlaceholder = _parent.data('input-placeholder'),
|
347 |
+
reasonInputHtml = '<div class="reason-input"><span class="message"></span>' + ( ( 'textfield' === inputType ) ? '<input type="text" />' : '<textarea rows="5"></textarea>' ) + '</div>';
|
348 |
|
349 |
_parent.append($(reasonInputHtml));
|
350 |
_parent.find('input, textarea').attr('placeholder', inputPlaceholder).focus();
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: gabelivan
|
|
3 |
Tags: pagespeed, page speed, dequeue, performance, gtmetrix
|
4 |
Donate link: https://gabelivan.com/items/wp-asset-cleanup-pro/?utm_source=wp_org_lite&utm_medium=donate
|
5 |
Requires at least: 4.4
|
6 |
-
Tested up to: 5.2
|
7 |
-
Stable tag: 1.3.2.
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl.html
|
10 |
|
@@ -154,6 +154,19 @@ With the recently released "Test Mode" feature, you can safely unload assets on
|
|
154 |
4. Homepage CSS & JS Management (List sorted by location)
|
155 |
|
156 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
= 1.3.2.8 =
|
158 |
* "Import & Export" added under "Tools" For Settings & Load/Unload Rules
|
159 |
* "General & Files Management" -> "Assets List Layout" - 2 new options: Group by dependencies & Group by loaded/unloaded status
|
3 |
Tags: pagespeed, page speed, dequeue, performance, gtmetrix
|
4 |
Donate link: https://gabelivan.com/items/wp-asset-cleanup-pro/?utm_source=wp_org_lite&utm_medium=donate
|
5 |
Requires at least: 4.4
|
6 |
+
Tested up to: 5.2.1
|
7 |
+
Stable tag: 1.3.2.9
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl.html
|
10 |
|
154 |
4. Homepage CSS & JS Management (List sorted by location)
|
155 |
|
156 |
== Changelog ==
|
157 |
+
= 1.3.2.9 =
|
158 |
+
* New Feature: Enable Minify CSS/JS on the fly when admin is logged in (for debugging purposes) - via /?wpacu_css_minify
|
159 |
+
* Updated "Tools" -> "System Info": Has database information related to the Asset CleanUp's entries
|
160 |
+
* Option to override "administrator" (default) role, in order to acesss plugin's pages
|
161 |
+
* Do not trigger Asset CleanUp Pro on REST Requests, WPBakery Page Builder Edit Mode, Brizy Page Builder Edit Mode
|
162 |
+
* Avoid notice errors if some "SG Optimizer" features are enabled
|
163 |
+
* Minify CSS: Compatibility with "Simple Custom CSS" plugin
|
164 |
+
* Match sidebar and top bar menus; Allow unloading of CSS/JS on the fly (via URI request) for debugging purposes; Added coloured left border for assets that had their position changed to easily distinguish them
|
165 |
+
* New Feature: Ignore dependency rule and keep the "children" loaded
|
166 |
+
* New Feature: CSS/JS "Notes" (useful to remember why you have unloaded or decided to keep a specific file)
|
167 |
+
* Bug Fix: Posts' Metas (e.g. load exceptions) were not imported
|
168 |
+
* Bug Fix: Make sure specific elements from "Site-Wide Common Unloads" are properly imported/exported
|
169 |
+
|
170 |
= 1.3.2.8 =
|
171 |
* "Import & Export" added under "Tools" For Settings & Load/Unload Rules
|
172 |
* "General & Files Management" -> "Assets List Layout" - 2 new options: Group by dependencies & Group by loaded/unloaded status
|
wpacu.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/*
|
3 |
* Plugin Name: Asset CleanUp: Page Speed Booster
|
4 |
* Plugin URI: https://wordpress.org/plugins/wp-asset-clean-up/
|
5 |
-
* Version: 1.3.2.
|
6 |
* Description: Unload Chosen Scripts & Styles from Posts/Pages to reduce HTTP Requests, Combine/Minify CSS/JS files
|
7 |
* Author: Gabriel Livan
|
8 |
* Author URI: http://gabelivan.com/
|
@@ -10,7 +10,7 @@
|
|
10 |
* Domain Path: /languages
|
11 |
*/
|
12 |
|
13 |
-
define('WPACU_PLUGIN_VERSION', '1.3.2.
|
14 |
|
15 |
// Exit if accessed directly
|
16 |
if (! defined('ABSPATH')) {
|
2 |
/*
|
3 |
* Plugin Name: Asset CleanUp: Page Speed Booster
|
4 |
* Plugin URI: https://wordpress.org/plugins/wp-asset-clean-up/
|
5 |
+
* Version: 1.3.2.9
|
6 |
* Description: Unload Chosen Scripts & Styles from Posts/Pages to reduce HTTP Requests, Combine/Minify CSS/JS files
|
7 |
* Author: Gabriel Livan
|
8 |
* Author URI: http://gabelivan.com/
|
10 |
* Domain Path: /languages
|
11 |
*/
|
12 |
|
13 |
+
define('WPACU_PLUGIN_VERSION', '1.3.2.9');
|
14 |
|
15 |
// Exit if accessed directly
|
16 |
if (! defined('ABSPATH')) {
|