Version Description
- Fix: Minify: Do not remove quotes around meta tags
- Fix: Minify: Removal of spaces in calc function was breaking CSS
- Fix: Browser Cache: Query string was not added to prevent caching after setting changes
- Fix: Avoid warning when sending an empty URL for purging
- Update: Added a filter for minified JavaScript content
- Update: Minify: Added options for minify only got both JS and CSS in auto mode
Download this release
Release Info
Developer | joemoto |
Plugin | W3 Total Cache |
Version | 0.15.2 |
Comparing to | |
See all releases |
Code changes from version 0.15.1 to 0.15.2
- BrowserCache_Plugin.php +27 -0
- ConfigCompiler.php +13 -0
- ConfigKeys.php +8 -4
- Minify_AutoCss.php +3 -0
- Minify_AutoJs.php +3 -0
- Minify_ConfigLabels.php +0 -1
- Minify_MinifiedFileRequestHandler.php +17 -6
- PgCache_Flush.php +4 -0
- Util_Admin.php +2 -1
- inc/options/minify.php +56 -10
- lib/Minify/Minify.php +3 -0
- lib/Minify/Minify/CSS/Compressor.php +2 -2
- lib/Minify/Minify/HTML.php +7 -4
- readme.txt +10 -2
- w3-total-cache-api.php +1 -1
- w3-total-cache.php +1 -1
BrowserCache_Plugin.php
CHANGED
@@ -168,6 +168,15 @@ class BrowserCache_Plugin {
|
|
168 |
$this,
|
169 |
'link_replace_callback'
|
170 |
), $buffer );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
171 |
}
|
172 |
|
173 |
return $buffer;
|
@@ -193,6 +202,24 @@ class BrowserCache_Plugin {
|
|
193 |
return sprintf( '%s\'%s\'', $attr, $url );
|
194 |
}
|
195 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
196 |
/**
|
197 |
* Mutate http/2 header links
|
198 |
*/
|
168 |
$this,
|
169 |
'link_replace_callback'
|
170 |
), $buffer );
|
171 |
+
|
172 |
+
// without quotes
|
173 |
+
$buffer = preg_replace_callback(
|
174 |
+
'~(href|src|action|extsrc|asyncsrc)=((' .
|
175 |
+
$domain_url_regexp .
|
176 |
+
')?(/[^\\s>][^\\s>]*\.([a-z-_]+)([\?#][^\\s>]*)?))([\\s>])~Ui', array(
|
177 |
+
$this,
|
178 |
+
'link_replace_callback_noquote'
|
179 |
+
), $buffer );
|
180 |
}
|
181 |
|
182 |
return $buffer;
|
202 |
return sprintf( '%s\'%s\'', $attr, $url );
|
203 |
}
|
204 |
|
205 |
+
/**
|
206 |
+
* Link replace callback when no quote arount attribute value
|
207 |
+
*
|
208 |
+
* @param string $matches
|
209 |
+
* @return string
|
210 |
+
*/
|
211 |
+
function link_replace_callback_noquote( $matches ) {
|
212 |
+
list ( $match, $attr, $url, , , , , $extension, , $delimiter ) = $matches;
|
213 |
+
|
214 |
+
$ops = $this->_get_url_mutation_operations( $url, $extension );
|
215 |
+
if ( is_null( $ops ) )
|
216 |
+
return $match;
|
217 |
+
|
218 |
+
$url = $this->mutate_url( $url, $ops, !$this->browsercache_rewrite );
|
219 |
+
|
220 |
+
return $attr . '=' . $url . $delimiter;
|
221 |
+
}
|
222 |
+
|
223 |
/**
|
224 |
* Mutate http/2 header links
|
225 |
*/
|
ConfigCompiler.php
CHANGED
@@ -246,6 +246,19 @@ class ConfigCompiler {
|
|
246 |
}
|
247 |
}
|
248 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
249 |
//
|
250 |
// changes in 0.13
|
251 |
//
|
246 |
}
|
247 |
}
|
248 |
|
249 |
+
//
|
250 |
+
// changes in 0.15.2
|
251 |
+
//
|
252 |
+
if ( version_compare( $file_data['version'], '0.15.2', '<' ) ) {
|
253 |
+
if ( isset( $file_data['minify.js.combine.header'] ) && $file_data['minify.js.combine.header'] ) {
|
254 |
+
$file_data['minify.js.method'] = 'combine';
|
255 |
+
}
|
256 |
+
|
257 |
+
if ( isset( $file_data['minify.css.combine'] ) && $file_data['minify.css.combine'] ) {
|
258 |
+
$file_data['minify.css.method'] = 'combine';
|
259 |
+
}
|
260 |
+
}
|
261 |
+
|
262 |
//
|
263 |
// changes in 0.13
|
264 |
//
|
ConfigKeys.php
CHANGED
@@ -836,10 +836,6 @@ $keys = array(
|
|
836 |
'mfunc'
|
837 |
)
|
838 |
),
|
839 |
-
'minify.css.combine' => array(
|
840 |
-
'type' => 'boolean',
|
841 |
-
'default' => false
|
842 |
-
),
|
843 |
'minify.css.enable' => array(
|
844 |
'type' => 'boolean',
|
845 |
'default' => true
|
@@ -848,6 +844,10 @@ $keys = array(
|
|
848 |
'type' => 'string',
|
849 |
'default' => 'css'
|
850 |
),
|
|
|
|
|
|
|
|
|
851 |
'minify.css.http2push' => array(
|
852 |
'type' => 'boolean',
|
853 |
'default' => false
|
@@ -884,6 +884,10 @@ $keys = array(
|
|
884 |
'type' => 'string',
|
885 |
'default' => 'js'
|
886 |
),
|
|
|
|
|
|
|
|
|
887 |
'minify.js.combine.header' => array(
|
888 |
'type' => 'boolean',
|
889 |
'default' => false
|
836 |
'mfunc'
|
837 |
)
|
838 |
),
|
|
|
|
|
|
|
|
|
839 |
'minify.css.enable' => array(
|
840 |
'type' => 'boolean',
|
841 |
'default' => true
|
844 |
'type' => 'string',
|
845 |
'default' => 'css'
|
846 |
),
|
847 |
+
'minify.css.method' => array(
|
848 |
+
'type' => 'string',
|
849 |
+
'default' => 'both'
|
850 |
+
),
|
851 |
'minify.css.http2push' => array(
|
852 |
'type' => 'boolean',
|
853 |
'default' => false
|
884 |
'type' => 'string',
|
885 |
'default' => 'js'
|
886 |
),
|
887 |
+
'minify.js.method' => array(
|
888 |
+
'type' => 'string',
|
889 |
+
'default' => 'both'
|
890 |
+
),
|
891 |
'minify.js.combine.header' => array(
|
892 |
'type' => 'boolean',
|
893 |
'default' => false
|
Minify_AutoCss.php
CHANGED
@@ -252,6 +252,9 @@ class Minify_AutoCss {
|
|
252 |
if ( count( $this->files_to_minify ) <= 0 )
|
253 |
$this->embed_pos = $tag_pos;
|
254 |
$this->files_to_minify[] = $file;
|
|
|
|
|
|
|
255 |
}
|
256 |
|
257 |
/**
|
252 |
if ( count( $this->files_to_minify ) <= 0 )
|
253 |
$this->embed_pos = $tag_pos;
|
254 |
$this->files_to_minify[] = $file;
|
255 |
+
|
256 |
+
if ( $this->config->get_string( 'minify.css.method' ) == 'minify' )
|
257 |
+
$this->flush_collected( '' );
|
258 |
}
|
259 |
|
260 |
/**
|
Minify_AutoJs.php
CHANGED
@@ -267,6 +267,9 @@ class Minify_AutoJs {
|
|
267 |
}
|
268 |
|
269 |
$this->files_to_minify[$sync_type]['files'][] = $file;
|
|
|
|
|
|
|
270 |
}
|
271 |
|
272 |
/**
|
267 |
}
|
268 |
|
269 |
$this->files_to_minify[$sync_type]['files'][] = $file;
|
270 |
+
|
271 |
+
if ( $this->config->get_string( 'minify.js.method' ) == 'minify' )
|
272 |
+
$this->flush_collected( $sync_type, '' );
|
273 |
}
|
274 |
|
275 |
/**
|
Minify_ConfigLabels.php
CHANGED
@@ -27,7 +27,6 @@ class Minify_ConfigLabels {
|
|
27 |
'minify.js.footer.embed_type' => __( 'Before <span class="html-tag"></body></span>', 'w3-total-cache' ),
|
28 |
'minify.js.combine.footer' => __( 'Combine only', 'w3-total-cache' ),
|
29 |
'minify.css.enable' => __( 'Enable', 'w3-total-cache' ),
|
30 |
-
'minify.css.combine' => __( 'Combine only', 'w3-total-cache' ),
|
31 |
'minify.css.imports' => __( '@import handling:', 'w3-total-cache' ),
|
32 |
'minify.lifetime' => __( 'Update external files every:', 'w3-total-cache' ),
|
33 |
'minify.file.gc' => __( 'Garbage collection interval:', 'w3-total-cache' ),
|
27 |
'minify.js.footer.embed_type' => __( 'Before <span class="html-tag"></body></span>', 'w3-total-cache' ),
|
28 |
'minify.js.combine.footer' => __( 'Combine only', 'w3-total-cache' ),
|
29 |
'minify.css.enable' => __( 'Enable', 'w3-total-cache' ),
|
|
|
30 |
'minify.css.imports' => __( '@import handling:', 'w3-total-cache' ),
|
31 |
'minify.lifetime' => __( 'Update external files every:', 'w3-total-cache' ),
|
32 |
'minify.file.gc' => __( 'Garbage collection interval:', 'w3-total-cache' ),
|
Minify_MinifiedFileRequestHandler.php
CHANGED
@@ -177,7 +177,8 @@ class Minify_MinifiedFileRequestHandler {
|
|
177 |
$minifier_type = 'application/x-javascript';
|
178 |
|
179 |
switch ( true ) {
|
180 |
-
case (
|
|
|
181 |
case ( $location == 'include-body' && $this->_config->get_boolean( 'minify.js.combine.body' ) ):
|
182 |
case ( $location == 'include-footer' && $this->_config->get_boolean( 'minify.js.combine.footer' ) ):
|
183 |
$engine = 'combinejs';
|
@@ -195,7 +196,7 @@ class Minify_MinifiedFileRequestHandler {
|
|
195 |
} elseif ( $type == 'css' ) {
|
196 |
$minifier_type = 'text/css';
|
197 |
|
198 |
-
if ( ( $hash || $location == 'include' ) && $this->_config->
|
199 |
$engine = 'combinecss';
|
200 |
} else {
|
201 |
$engine = $this->_config->get_string( 'minify.css.engine' );
|
@@ -860,12 +861,22 @@ class Minify_MinifiedFileRequestHandler {
|
|
860 |
if ( $type == 'js' ) {
|
861 |
$engine = $this->_config->get_string( 'minify.js.engine' );
|
862 |
|
863 |
-
|
864 |
-
|
865 |
-
|
|
|
|
|
|
|
866 |
'minify.js.combine.header',
|
867 |
'minify.js.combine.body',
|
868 |
'minify.js.combine.footer',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
869 |
'minify.js.strip.comments',
|
870 |
'minify.js.strip.crlf',
|
871 |
) );
|
@@ -889,11 +900,11 @@ class Minify_MinifiedFileRequestHandler {
|
|
889 |
}
|
890 |
} elseif ( $type == 'css' ) {
|
891 |
$engine = $this->_config->get_string( 'minify.css.engine' );
|
|
|
892 |
|
893 |
switch ( $engine ) {
|
894 |
case 'css':
|
895 |
$keys = array_merge( $keys, array(
|
896 |
-
'minify.css.combine',
|
897 |
'minify.css.strip.comments',
|
898 |
'minify.css.strip.crlf',
|
899 |
'minify.css.imports',
|
177 |
$minifier_type = 'application/x-javascript';
|
178 |
|
179 |
switch ( true ) {
|
180 |
+
case ( $hash && $this->_config->get_string( 'minify.js.method' ) == 'combine' ):
|
181 |
+
case ( $location == 'include' && $this->_config->get_boolean( 'minify.js.combine.header' ) ):
|
182 |
case ( $location == 'include-body' && $this->_config->get_boolean( 'minify.js.combine.body' ) ):
|
183 |
case ( $location == 'include-footer' && $this->_config->get_boolean( 'minify.js.combine.footer' ) ):
|
184 |
$engine = 'combinejs';
|
196 |
} elseif ( $type == 'css' ) {
|
197 |
$minifier_type = 'text/css';
|
198 |
|
199 |
+
if ( ( $hash || $location == 'include' ) && $this->_config->get_string( 'minify.css.method' ) == 'combine' ) {
|
200 |
$engine = 'combinecss';
|
201 |
} else {
|
202 |
$engine = $this->_config->get_string( 'minify.css.engine' );
|
861 |
if ( $type == 'js' ) {
|
862 |
$engine = $this->_config->get_string( 'minify.js.engine' );
|
863 |
|
864 |
+
if ( $this->_config->get_boolean( 'minify.auto' ) ) {
|
865 |
+
$keys[] = 'minify.js.method';
|
866 |
+
} else {
|
867 |
+
array_merge(
|
868 |
+
$keys,
|
869 |
+
array(
|
870 |
'minify.js.combine.header',
|
871 |
'minify.js.combine.body',
|
872 |
'minify.js.combine.footer',
|
873 |
+
)
|
874 |
+
);
|
875 |
+
}
|
876 |
+
|
877 |
+
switch ( $engine ) {
|
878 |
+
case 'js':
|
879 |
+
$keys = array_merge( $keys, array(
|
880 |
'minify.js.strip.comments',
|
881 |
'minify.js.strip.crlf',
|
882 |
) );
|
900 |
}
|
901 |
} elseif ( $type == 'css' ) {
|
902 |
$engine = $this->_config->get_string( 'minify.css.engine' );
|
903 |
+
$keys[] = 'minify.css.method';
|
904 |
|
905 |
switch ( $engine ) {
|
906 |
case 'css':
|
907 |
$keys = array_merge( $keys, array(
|
|
|
908 |
'minify.css.strip.comments',
|
909 |
'minify.css.strip.crlf',
|
910 |
'minify.css.imports',
|
PgCache_Flush.php
CHANGED
@@ -302,6 +302,10 @@ class PgCache_Flush extends PgCache_ContentGrabber {
|
|
302 |
*/
|
303 |
private function _flush_url( $url, $cache, $mobile_groups, $referrer_groups,
|
304 |
$cookies, $encryptions, $compressions, $group ) {
|
|
|
|
|
|
|
|
|
305 |
foreach ( $mobile_groups as $mobile_group ) {
|
306 |
foreach ( $referrer_groups as $referrer_group ) {
|
307 |
foreach ( $cookies as $cookie ) {
|
302 |
*/
|
303 |
private function _flush_url( $url, $cache, $mobile_groups, $referrer_groups,
|
304 |
$cookies, $encryptions, $compressions, $group ) {
|
305 |
+
if ( empty( $url ) ) {
|
306 |
+
return;
|
307 |
+
}
|
308 |
+
|
309 |
foreach ( $mobile_groups as $mobile_group ) {
|
310 |
foreach ( $referrer_groups as $referrer_group ) {
|
311 |
foreach ( $cookies as $cookie ) {
|
Util_Admin.php
CHANGED
@@ -380,7 +380,7 @@ class Util_Admin {
|
|
380 |
if ( $new_config->get_boolean( 'minify.css.enable' ) && ( $new_config->get_boolean( 'minify.auto' ) || count( $new_config->get_array( 'minify.css.groups' ) ) ) ) {
|
381 |
$minify_dependencies = array_merge( $minify_dependencies, array(
|
382 |
'minify.css.engine',
|
383 |
-
'minify.css.
|
384 |
'minify.css.strip.comments',
|
385 |
'minify.css.strip.crlf',
|
386 |
'minify.css.imports',
|
@@ -411,6 +411,7 @@ class Util_Admin {
|
|
411 |
if ( $new_config->get_boolean( 'minify.js.enable' ) && ( $new_config->get_boolean( 'minify.auto' ) || count( $new_config->get_array( 'minify.js.groups' ) ) ) ) {
|
412 |
$minify_dependencies = array_merge( $minify_dependencies, array(
|
413 |
'minify.js.engine',
|
|
|
414 |
'minify.js.combine.header',
|
415 |
'minify.js.combine.body',
|
416 |
'minify.js.combine.footer',
|
380 |
if ( $new_config->get_boolean( 'minify.css.enable' ) && ( $new_config->get_boolean( 'minify.auto' ) || count( $new_config->get_array( 'minify.css.groups' ) ) ) ) {
|
381 |
$minify_dependencies = array_merge( $minify_dependencies, array(
|
382 |
'minify.css.engine',
|
383 |
+
'minify.css.method',
|
384 |
'minify.css.strip.comments',
|
385 |
'minify.css.strip.crlf',
|
386 |
'minify.css.imports',
|
411 |
if ( $new_config->get_boolean( 'minify.js.enable' ) && ( $new_config->get_boolean( 'minify.auto' ) || count( $new_config->get_array( 'minify.js.groups' ) ) ) ) {
|
412 |
$minify_dependencies = array_merge( $minify_dependencies, array(
|
413 |
'minify.js.engine',
|
414 |
+
'minify.js.method',
|
415 |
'minify.js.combine.header',
|
416 |
'minify.js.combine.body',
|
417 |
'minify.js.combine.footer',
|
inc/options/minify.php
CHANGED
@@ -133,10 +133,37 @@ if ( file_exists( $html_engine_file2 ) ) {
|
|
133 |
|
134 |
<?php Util_Ui::postbox_header( __( '<acronym title="JavaScript">JS</acronym>', 'w3-total-cache' ), '', 'js' ); ?>
|
135 |
<table class="form-table">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
136 |
<tr>
|
137 |
-
<th><?php _e( '
|
138 |
<td>
|
139 |
-
<?php $this->checkbox( 'minify.js.enable' ) ?> <?php Util_Ui::e_config_label( 'minify.js.enable' ) ?></label><br />
|
140 |
<fieldset><legend><?php _e( 'Operations in areas:', 'w3-total-cache' ); ?></legend>
|
141 |
<table id="minify_table">
|
142 |
<tr>
|
@@ -205,11 +232,6 @@ if ( file_exists( $html_engine_file2 ) ) {
|
|
205 |
<?php endif; ?>
|
206 |
</table>
|
207 |
</fieldset>
|
208 |
-
<?php if ( $auto ): ?>
|
209 |
-
<p>
|
210 |
-
<?php $this->radio( 'minify.js.combine.header', false, false, 'js_' ) ?> <?php _e( 'Minify', 'w3-total-cache' ); ?> </label> <?php $this->radio( 'minify.js.combine.header', true, false, 'js_' ) ?> <?php Util_Ui::e_config_label( 'minify.js.combine.header' ) ?></label>
|
211 |
-
</p>
|
212 |
-
<?php endif; ?>
|
213 |
|
214 |
<?php
|
215 |
$js_engine_file = '';
|
@@ -329,11 +351,35 @@ Util_Ui::config_item( array(
|
|
329 |
|
330 |
<?php Util_Ui::postbox_header( __( '<acronym title="Cascading Style Sheet">CSS</acronym>', 'w3-total-cache' ), '', 'css' ); ?>
|
331 |
<table class="form-table">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
332 |
<tr>
|
333 |
-
<th><?php _e( '
|
334 |
<td>
|
335 |
-
<?php $this->checkbox( 'minify.css.enable' ) ?> <?php Util_Ui::e_config_label( 'minify.css.enable' ) ?></label><br />
|
336 |
-
<?php $this->checkbox( 'minify.css.combine', false, 'css_' ) ?> <?php Util_Ui::e_config_label( 'minify.css.combine' ) ?></label><br />
|
337 |
<?php
|
338 |
$css_engine_file = '';
|
339 |
|
133 |
|
134 |
<?php Util_Ui::postbox_header( __( '<acronym title="JavaScript">JS</acronym>', 'w3-total-cache' ), '', 'js' ); ?>
|
135 |
<table class="form-table">
|
136 |
+
<?php
|
137 |
+
Util_Ui::config_item( array(
|
138 |
+
'key' => 'minify.js.enable',
|
139 |
+
'label' => '<acronym title="JavaScript">JS</acronym> minify settings:',
|
140 |
+
'control' => 'checkbox',
|
141 |
+
'checkbox_label' => __( 'Enable', 'w3-total-cache' )
|
142 |
+
) );
|
143 |
+
?>
|
144 |
+
<?php
|
145 |
+
if ( $auto ):
|
146 |
+
Util_Ui::config_item( array(
|
147 |
+
'key' => 'minify.js.method',
|
148 |
+
'label' => 'Minify method:',
|
149 |
+
'control' => 'selectbox',
|
150 |
+
'selectbox_values' => array(
|
151 |
+
'both' => array(
|
152 |
+
'label' => __( 'Combine & Minify', 'w3-total-cache' )
|
153 |
+
),
|
154 |
+
'minify' => array(
|
155 |
+
'label' => __( 'Minify only', 'w3-total-cache' )
|
156 |
+
),
|
157 |
+
'combine' => array(
|
158 |
+
'label' => __( 'Combine only', 'w3-total-cache' )
|
159 |
+
)
|
160 |
+
)
|
161 |
+
) );
|
162 |
+
endif;
|
163 |
+
?>
|
164 |
<tr>
|
165 |
+
<th><?php _e( 'Minify engine settings:', 'w3-total-cache' ); ?></th>
|
166 |
<td>
|
|
|
167 |
<fieldset><legend><?php _e( 'Operations in areas:', 'w3-total-cache' ); ?></legend>
|
168 |
<table id="minify_table">
|
169 |
<tr>
|
232 |
<?php endif; ?>
|
233 |
</table>
|
234 |
</fieldset>
|
|
|
|
|
|
|
|
|
|
|
235 |
|
236 |
<?php
|
237 |
$js_engine_file = '';
|
351 |
|
352 |
<?php Util_Ui::postbox_header( __( '<acronym title="Cascading Style Sheet">CSS</acronym>', 'w3-total-cache' ), '', 'css' ); ?>
|
353 |
<table class="form-table">
|
354 |
+
<?php
|
355 |
+
Util_Ui::config_item( array(
|
356 |
+
'key' => 'minify.css.enable',
|
357 |
+
'label' => '<acronym title="Cascading Style Sheet">CSS</acronym> minify settings:',
|
358 |
+
'control' => 'checkbox',
|
359 |
+
'checkbox_label' => __( 'Enable', 'w3-total-cache' )
|
360 |
+
) );
|
361 |
+
?>
|
362 |
+
<?php
|
363 |
+
Util_Ui::config_item( array(
|
364 |
+
'key' => 'minify.css.method',
|
365 |
+
'label' => 'Minify method:',
|
366 |
+
'control' => 'selectbox',
|
367 |
+
'selectbox_values' => array(
|
368 |
+
'both' => array(
|
369 |
+
'label' => __( 'Combine & Minify', 'w3-total-cache' )
|
370 |
+
),
|
371 |
+
'minify' => array(
|
372 |
+
'label' => __( 'Minify only', 'w3-total-cache' )
|
373 |
+
),
|
374 |
+
'combine' => array(
|
375 |
+
'label' => __( 'Combine only', 'w3-total-cache' )
|
376 |
+
)
|
377 |
+
)
|
378 |
+
) );
|
379 |
+
?>
|
380 |
<tr>
|
381 |
+
<th><?php _e( 'Minify engine settings:', 'w3-total-cache' ); ?></th>
|
382 |
<td>
|
|
|
|
|
383 |
<?php
|
384 |
$css_engine_file = '';
|
385 |
|
lib/Minify/Minify.php
CHANGED
@@ -616,6 +616,9 @@ class Minify0_Minify {
|
|
616 |
if ( $type === self::TYPE_CSS ) {
|
617 |
$content = apply_filters( 'w3tc_minify_css_content', $content, null, null );
|
618 |
}
|
|
|
|
|
|
|
619 |
|
620 |
// do any post-processing (esp. for editing build URIs)
|
621 |
if (self::$_options['postprocessorRequire']) {
|
616 |
if ( $type === self::TYPE_CSS ) {
|
617 |
$content = apply_filters( 'w3tc_minify_css_content', $content, null, null );
|
618 |
}
|
619 |
+
if ( $type === self::TYPE_JS ) {
|
620 |
+
$content = apply_filters( 'w3tc_minify_js_content', $content, null, null );
|
621 |
+
}
|
622 |
|
623 |
// do any post-processing (esp. for editing build URIs)
|
624 |
if (self::$_options['postprocessorRequire']) {
|
lib/Minify/Minify/CSS/Compressor.php
CHANGED
@@ -118,12 +118,12 @@ class Minify_CSS_Compressor {
|
|
118 |
$css = preg_replace_callback('/
|
119 |
(?: # non-capture
|
120 |
\\s*
|
121 |
-
[
|
122 |
\\s*
|
123 |
[,>+~] # combinators
|
124 |
)+
|
125 |
\\s*
|
126 |
-
[
|
127 |
{ # open declaration block
|
128 |
/x'
|
129 |
,array($this, '_selectorsCB'), $css);
|
118 |
$css = preg_replace_callback('/
|
119 |
(?: # non-capture
|
120 |
\\s*
|
121 |
+
[^{}~>+,\\s]+ # selector part
|
122 |
\\s*
|
123 |
[,>+~] # combinators
|
124 |
)+
|
125 |
\\s*
|
126 |
+
[^{}~>+,\\s]+ # selector part
|
127 |
{ # open declaration block
|
128 |
/x'
|
129 |
,array($this, '_selectorsCB'), $css);
|
lib/Minify/Minify/HTML.php
CHANGED
@@ -201,7 +201,7 @@ class Minify_HTML {
|
|
201 |
|
202 |
// unquote attribute values without spaces
|
203 |
$this->_html = preg_replace_callback(
|
204 |
-
'/(<[a-z\\-]
|
205 |
,array($this, '_removeAttributeQuotes')
|
206 |
,$this->_html);
|
207 |
|
@@ -349,10 +349,13 @@ class Minify_HTML {
|
|
349 |
}
|
350 |
|
351 |
protected function _removeAttributeQuotes($m) {
|
352 |
-
|
353 |
-
|
|
|
|
|
|
|
354 |
|
355 |
-
return $m[1] . $m[
|
356 |
}
|
357 |
|
358 |
|
201 |
|
202 |
// unquote attribute values without spaces
|
203 |
$this->_html = preg_replace_callback(
|
204 |
+
'/(<([a-z\\-]+)\\s)\\s*([^>]+>)/m'
|
205 |
,array($this, '_removeAttributeQuotes')
|
206 |
,$this->_html);
|
207 |
|
349 |
}
|
350 |
|
351 |
protected function _removeAttributeQuotes($m) {
|
352 |
+
// whatsapp/fb bots dont read meta tags without quotes well
|
353 |
+
if (strtolower($m[2]) != 'meta') {
|
354 |
+
$m[3] = preg_replace_callback( '~([a-z0-9\\-])=(?<quote>[\'"])([^"\'\\s=]*)\k<quote>(\\s|>|/>)~i',
|
355 |
+
array( $this, '_removeAttributeQuotesCallback'), $m[3] );
|
356 |
+
}
|
357 |
|
358 |
+
return $m[1] . $m[3];
|
359 |
}
|
360 |
|
361 |
|
readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
Contributors: boldgrid, fredericktownes, maxicusc, gidomanders, bwmarkle, harryjackson1221, joemoto
|
3 |
Tags: seo, cache, optimize, pagespeed, performance, caching, compression, maxcdn, nginx, varnish, redis, new relic, aws, amazon web services, s3, cloudfront, rackspace, cloudflare, azure, apache
|
4 |
Requires at least: 3.2
|
5 |
-
Tested up to: 5.
|
6 |
-
Stable tag: 0.15.
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -275,6 +275,14 @@ Please reach out to all of these people and support their projects if you're so
|
|
275 |
|
276 |
== Changelog ==
|
277 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
278 |
= 0.15.1 =
|
279 |
* Fix: Fixed Memcached flush logic
|
280 |
* Fix: Remove disk enhanced rewrites when disabling page cache
|
2 |
Contributors: boldgrid, fredericktownes, maxicusc, gidomanders, bwmarkle, harryjackson1221, joemoto
|
3 |
Tags: seo, cache, optimize, pagespeed, performance, caching, compression, maxcdn, nginx, varnish, redis, new relic, aws, amazon web services, s3, cloudfront, rackspace, cloudflare, azure, apache
|
4 |
Requires at least: 3.2
|
5 |
+
Tested up to: 5.6
|
6 |
+
Stable tag: 0.15.2
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
275 |
|
276 |
== Changelog ==
|
277 |
|
278 |
+
= 0.15.2 =
|
279 |
+
* Fix: Minify: Do not remove quotes around meta tags
|
280 |
+
* Fix: Minify: Removal of spaces in calc function was breaking CSS
|
281 |
+
* Fix: Browser Cache: Query string was not added to prevent caching after setting changes
|
282 |
+
* Fix: Avoid warning when sending an empty URL for purging
|
283 |
+
* Update: Added a filter for minified JavaScript content
|
284 |
+
* Update: Minify: Added options for minify only got both JS and CSS in auto mode
|
285 |
+
|
286 |
= 0.15.1 =
|
287 |
* Fix: Fixed Memcached flush logic
|
288 |
* Fix: Remove disk enhanced rewrites when disabling page cache
|
w3-total-cache-api.php
CHANGED
@@ -5,7 +5,7 @@ if ( !defined( 'ABSPATH' ) ) {
|
|
5 |
}
|
6 |
|
7 |
define( 'W3TC', true );
|
8 |
-
define( 'W3TC_VERSION', '0.15.
|
9 |
define( 'W3TC_POWERED_BY', 'W3 Total Cache' );
|
10 |
define( 'W3TC_EMAIL', 'w3tc@w3-edge.com' );
|
11 |
define( 'W3TC_TEXT_DOMAIN', 'w3-total-cache' );
|
5 |
}
|
6 |
|
7 |
define( 'W3TC', true );
|
8 |
+
define( 'W3TC_VERSION', '0.15.2' );
|
9 |
define( 'W3TC_POWERED_BY', 'W3 Total Cache' );
|
10 |
define( 'W3TC_EMAIL', 'w3tc@w3-edge.com' );
|
11 |
define( 'W3TC_TEXT_DOMAIN', 'w3-total-cache' );
|
w3-total-cache.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: W3 Total Cache
|
4 |
* Plugin URI: https://www.boldgrid.com/totalcache/
|
5 |
* Description: The highest rated and most complete WordPress performance plugin. Dramatically improve the speed and user experience of your site. Add browser, page, object and database caching as well as minify and content delivery network (CDN) to WordPress.
|
6 |
-
* Version: 0.15.
|
7 |
* Requires at least: 3.2
|
8 |
* Requires PHP: 5.3
|
9 |
* Author: BoldGrid
|
3 |
* Plugin Name: W3 Total Cache
|
4 |
* Plugin URI: https://www.boldgrid.com/totalcache/
|
5 |
* Description: The highest rated and most complete WordPress performance plugin. Dramatically improve the speed and user experience of your site. Add browser, page, object and database caching as well as minify and content delivery network (CDN) to WordPress.
|
6 |
+
* Version: 0.15.2
|
7 |
* Requires at least: 3.2
|
8 |
* Requires PHP: 5.3
|
9 |
* Author: BoldGrid
|