Version Description
- Update: Lazysizes updated to 5.1.0 (from 4.0.4).
Download this release
Release Info
Developer | TigrouMeow |
Plugin | WP Retina 2x |
Version | 5.5.6 |
Comparing to | |
See all releases |
Code changes from version 5.5.5 to 5.5.6
- common/admin.css +4 -1
- common/admin.php +36 -12
- core.php +24 -0
- js/lazysizes.min.js +2 -2
- readme.txt +19 -11
- wp-retina-2x.php +3 -3
- wr2x_admin.php +0 -2
common/admin.css
CHANGED
@@ -308,11 +308,14 @@
|
|
308 |
margin: 0px;
|
309 |
}
|
310 |
|
|
|
|
|
|
|
|
|
311 |
.meow-dashboard .meow-box li {
|
312 |
border-bottom: 1px solid #eee;
|
313 |
margin: 0px;
|
314 |
padding: 10px;
|
315 |
-
min-height: 80px;
|
316 |
box-sizing: border-box;
|
317 |
}
|
318 |
|
308 |
margin: 0px;
|
309 |
}
|
310 |
|
311 |
+
.meow-featured-plugins .meow-box li {
|
312 |
+
min-height: 80px;
|
313 |
+
}
|
314 |
+
|
315 |
.meow-dashboard .meow-box li {
|
316 |
border-bottom: 1px solid #eee;
|
317 |
margin: 0px;
|
318 |
padding: 10px;
|
|
|
319 |
box-sizing: border-box;
|
320 |
}
|
321 |
|
common/admin.php
CHANGED
@@ -7,7 +7,7 @@ if ( !class_exists( 'MeowApps_Admin' ) ) {
|
|
7 |
public static $logo = 'data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxIiB2aWV3Qm94PSIwIDAgMTY1IDE2NSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8c3R5bGU+CiAgICAuc3Qye2ZpbGw6IzgwNDYyNX0uc3Qze2ZpbGw6I2ZkYTk2MH0KICA8L3N0eWxlPgogIDxwYXRoIGQ9Ik03MiA3YTc2IDc2IDAgMCAxIDg0IDkxQTc1IDc1IDAgMSAxIDcyIDd6IiBmaWxsPSIjNGE2YjhjIi8+CiAgPHBhdGggZD0iTTQ4IDQ4YzIgNSAyIDEwIDUgMTQgNSA4IDEzIDE3IDIyIDIwbDEtMTBjMS0yIDMtMyA1LTNoMTNjMiAwIDQgMSA1IDNsMyA5IDQtMTBjMi0zIDYtMiA5LTJoMTFjMyAyIDMgNSAzIDhsMiAzN2MwIDMtMSA3LTQgOGgtMTJjLTIgMC0zLTItNS00LTEgMS0yIDMtNCAzLTUgMS05IDEtMTMtMS0zIDItNSAyLTkgMnMtOSAxLTEwLTNjLTItNC0xLTggMC0xMi04LTMtMTUtNy0yMi0xMi03LTctMTUtMTQtMjAtMjMtMy00LTUtOC01LTEzIDEtNCAzLTEwIDYtMTMgNC0zIDEyLTIgMTUgMnoiIGZpbGw9IiMxMDEwMTAiLz4KICA8cGF0aCBjbGFzcz0ic3QyIiBkPSJNNDMgNTFsNCAxMS02IDVoLTZjLTMtNS0zLTExIDAtMTYgMi0yIDYtMyA4IDB6Ii8+CiAgPHBhdGggY2xhc3M9InN0MyIgZD0iTTQ3IDYybDMgNmMwIDMgMCA0LTIgNnMtNCAyLTcgMmwtNi05aDZsNi01eiIvPgogIDxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik01MCA2OGw4IDljLTMgMy01IDYtOSA4bC04LTljMyAwIDUgMCA3LTJzMy0zIDItNnoiLz4KICA8cGF0aCBkPSJNODIgNzRoMTJsNSAxOCAzIDExIDgtMjloMTNsMiA0MmgtOGwtMS0yLTEtMzEtMTAgMzItNyAxLTktMzMtMSAyOS0xIDRoLThsMy00MnoiIGZpbGw9IiNmZmYiLz4KICA8cGF0aCBjbGFzcz0ic3QzIiBkPSJNNTggNzdsNSA1Yy0xIDQtMiA4LTcgOGwtNy01YzQtMiA2LTUgOS04eiIvPgogIDxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik02MyA4Mmw5IDUtNiA5LTEwLTZjNSAwIDYtNCA3LTh6Ii8+CiAgPHBhdGggY2xhc3M9InN0MyIgZD0iTTcyIDg3bDMgMS0xIDExLTgtMyA2LTEweiIvPgo8L3N2Zz4K';
|
8 |
|
9 |
public static $loaded = false;
|
10 |
-
public static $admin_version = "
|
11 |
|
12 |
public $prefix; // prefix used for actions, filters (mfrh)
|
13 |
public $mainfile; // plugin main file (media-file-renamer.php)
|
@@ -44,6 +44,12 @@ if ( !class_exists( 'MeowApps_Admin' ) ) {
|
|
44 |
}
|
45 |
}
|
46 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
}
|
48 |
|
49 |
function show_meowapps_create_rating_date() {
|
@@ -147,7 +153,7 @@ if ( !class_exists( 'MeowApps_Admin' ) ) {
|
|
147 |
|
148 |
function display_title( $title = "Meow Apps",
|
149 |
$author = "By <a style='text-decoration: none;' href='https://meowapps.com' target='_blank'>Jordy Meow</a>" ) {
|
150 |
-
if ( !empty( $this->prefix ) )
|
151 |
$title = apply_filters( $this->prefix . '_plugin_title', $title );
|
152 |
if ( $this->display_ads() ) {
|
153 |
}
|
@@ -190,9 +196,9 @@ if ( !class_exists( 'MeowApps_Admin' ) ) {
|
|
190 |
add_settings_field( 'meowapps_force_sslverify', "SSL Verify",
|
191 |
array( $this, 'meowapps_force_sslverify_callback' ),
|
192 |
'meowapps_common_settings-menu', 'meowapps_common_settings' );
|
193 |
-
add_settings_field( 'meowapps_hide_ads', "Ads",
|
194 |
-
|
195 |
-
|
196 |
register_setting( 'meowapps_common_settings', 'force_sslverify' );
|
197 |
register_setting( 'meowapps_common_settings', 'meowapps_hide_meowapps' );
|
198 |
register_setting( 'meowapps_common_settings', 'meowapps_hide_ads' );
|
@@ -334,14 +340,15 @@ if ( !class_exists( 'MeowApps_Admin' ) ) {
|
|
334 |
else {
|
335 |
|
336 |
?>
|
337 |
-
<?php $this->display_title(); ?>
|
338 |
<p>
|
339 |
<?php _e( 'Meow Apps is run by Jordy Meow, a photographer and software developer living in Japan (and taking <a target="_blank" href="http://offbeatjapan.org">a lot of photos</a>). Meow Apps is a suite of plugins focusing on photography, imaging, optimization and it teams up with the best players in the community (other themes and plugins developers). For more information, please check <a href="http://meowapps.com" target="_blank">Meow Apps</a>.', 'meowapps' )
|
340 |
?>
|
341 |
</p>
|
342 |
-
|
|
|
|
|
343 |
<div class="meow-box meow-col meow-span_1_of_2 ">
|
344 |
-
<h3 class=""><span class="dashicons dashicons-camera"></span> UI Plugins </h3>
|
345 |
<ul class="">
|
346 |
<li><img src='<?= $this->common_url( 'img/wplr-sync.jpg' ) ?>' /><b>WP/LR Sync</b>
|
347 |
<?php echo $this->check_install( 'wplr-sync' ) ?><br />
|
@@ -355,7 +362,6 @@ if ( !class_exists( 'MeowApps_Admin' ) ) {
|
|
355 |
</ul>
|
356 |
</div>
|
357 |
<div class="meow-box meow-col meow-span_1_of_2">
|
358 |
-
<h3 class=""><span class="dashicons dashicons-admin-tools"></span> System Plugins</h3>
|
359 |
<ul class="">
|
360 |
<li><img src='<?= $this->common_url( 'img/media-file-renamer.jpg' ) ?>' /><b>Media File Renamer</b>
|
361 |
<?php echo $this->check_install( 'media-file-renamer' ) ?><br />
|
@@ -370,6 +376,27 @@ if ( !class_exists( 'MeowApps_Admin' ) ) {
|
|
370 |
</div>
|
371 |
</div>
|
372 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
373 |
<div class="meow-row">
|
374 |
<div class="meow-box meow-col meow-span_2_of_3">
|
375 |
<h3><span class="dashicons dashicons-admin-tools"></span> Common</h3>
|
@@ -409,11 +436,8 @@ if ( !class_exists( 'MeowApps_Admin' ) ) {
|
|
409 |
</div>
|
410 |
</div>
|
411 |
|
412 |
-
|
413 |
<?php
|
414 |
-
|
415 |
}
|
416 |
-
|
417 |
echo "<br /><small style='color: lightgray;'>Meow Admin " . MeowApps_Admin::$admin_version . "</small></div>";
|
418 |
}
|
419 |
|
7 |
public static $logo = 'data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxIiB2aWV3Qm94PSIwIDAgMTY1IDE2NSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8c3R5bGU+CiAgICAuc3Qye2ZpbGw6IzgwNDYyNX0uc3Qze2ZpbGw6I2ZkYTk2MH0KICA8L3N0eWxlPgogIDxwYXRoIGQ9Ik03MiA3YTc2IDc2IDAgMCAxIDg0IDkxQTc1IDc1IDAgMSAxIDcyIDd6IiBmaWxsPSIjNGE2YjhjIi8+CiAgPHBhdGggZD0iTTQ4IDQ4YzIgNSAyIDEwIDUgMTQgNSA4IDEzIDE3IDIyIDIwbDEtMTBjMS0yIDMtMyA1LTNoMTNjMiAwIDQgMSA1IDNsMyA5IDQtMTBjMi0zIDYtMiA5LTJoMTFjMyAyIDMgNSAzIDhsMiAzN2MwIDMtMSA3LTQgOGgtMTJjLTIgMC0zLTItNS00LTEgMS0yIDMtNCAzLTUgMS05IDEtMTMtMS0zIDItNSAyLTkgMnMtOSAxLTEwLTNjLTItNC0xLTggMC0xMi04LTMtMTUtNy0yMi0xMi03LTctMTUtMTQtMjAtMjMtMy00LTUtOC01LTEzIDEtNCAzLTEwIDYtMTMgNC0zIDEyLTIgMTUgMnoiIGZpbGw9IiMxMDEwMTAiLz4KICA8cGF0aCBjbGFzcz0ic3QyIiBkPSJNNDMgNTFsNCAxMS02IDVoLTZjLTMtNS0zLTExIDAtMTYgMi0yIDYtMyA4IDB6Ii8+CiAgPHBhdGggY2xhc3M9InN0MyIgZD0iTTQ3IDYybDMgNmMwIDMgMCA0LTIgNnMtNCAyLTcgMmwtNi05aDZsNi01eiIvPgogIDxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik01MCA2OGw4IDljLTMgMy01IDYtOSA4bC04LTljMyAwIDUgMCA3LTJzMy0zIDItNnoiLz4KICA8cGF0aCBkPSJNODIgNzRoMTJsNSAxOCAzIDExIDgtMjloMTNsMiA0MmgtOGwtMS0yLTEtMzEtMTAgMzItNyAxLTktMzMtMSAyOS0xIDRoLThsMy00MnoiIGZpbGw9IiNmZmYiLz4KICA8cGF0aCBjbGFzcz0ic3QzIiBkPSJNNTggNzdsNSA1Yy0xIDQtMiA4LTcgOGwtNy01YzQtMiA2LTUgOS04eiIvPgogIDxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik02MyA4Mmw5IDUtNiA5LTEwLTZjNSAwIDYtNCA3LTh6Ii8+CiAgPHBhdGggY2xhc3M9InN0MyIgZD0iTTcyIDg3bDMgMS0xIDExLTgtMyA2LTEweiIvPgo8L3N2Zz4K';
|
8 |
|
9 |
public static $loaded = false;
|
10 |
+
public static $admin_version = "2.0";
|
11 |
|
12 |
public $prefix; // prefix used for actions, filters (mfrh)
|
13 |
public $mainfile; // plugin main file (media-file-renamer.php)
|
44 |
}
|
45 |
}
|
46 |
}
|
47 |
+
|
48 |
+
add_filter( 'edd_sl_api_request_verify_ssl', array( $this, 'request_verify_ssl' ), 10, 0 );
|
49 |
+
}
|
50 |
+
|
51 |
+
function request_verify_ssl() {
|
52 |
+
return get_option( 'force_sslverify', false );
|
53 |
}
|
54 |
|
55 |
function show_meowapps_create_rating_date() {
|
153 |
|
154 |
function display_title( $title = "Meow Apps",
|
155 |
$author = "By <a style='text-decoration: none;' href='https://meowapps.com' target='_blank'>Jordy Meow</a>" ) {
|
156 |
+
if ( !empty( $this->prefix ) && $title !== "Meow Apps" )
|
157 |
$title = apply_filters( $this->prefix . '_plugin_title', $title );
|
158 |
if ( $this->display_ads() ) {
|
159 |
}
|
196 |
add_settings_field( 'meowapps_force_sslverify', "SSL Verify",
|
197 |
array( $this, 'meowapps_force_sslverify_callback' ),
|
198 |
'meowapps_common_settings-menu', 'meowapps_common_settings' );
|
199 |
+
// add_settings_field( 'meowapps_hide_ads', "Ads",
|
200 |
+
// array( $this, 'meowapps_hide_ads_callback' ),
|
201 |
+
// 'meowapps_common_settings-menu', 'meowapps_common_settings' );
|
202 |
register_setting( 'meowapps_common_settings', 'force_sslverify' );
|
203 |
register_setting( 'meowapps_common_settings', 'meowapps_hide_meowapps' );
|
204 |
register_setting( 'meowapps_common_settings', 'meowapps_hide_ads' );
|
340 |
else {
|
341 |
|
342 |
?>
|
343 |
+
<?php $this->display_title( 'Meow Apps' ); ?>
|
344 |
<p>
|
345 |
<?php _e( 'Meow Apps is run by Jordy Meow, a photographer and software developer living in Japan (and taking <a target="_blank" href="http://offbeatjapan.org">a lot of photos</a>). Meow Apps is a suite of plugins focusing on photography, imaging, optimization and it teams up with the best players in the community (other themes and plugins developers). For more information, please check <a href="http://meowapps.com" target="_blank">Meow Apps</a>.', 'meowapps' )
|
346 |
?>
|
347 |
</p>
|
348 |
+
|
349 |
+
<h2 style="margin-bottom: 0px; margin-top: 25px;">Featured Plugins</h2>
|
350 |
+
<div class="meow-row meow-featured-plugins">
|
351 |
<div class="meow-box meow-col meow-span_1_of_2 ">
|
|
|
352 |
<ul class="">
|
353 |
<li><img src='<?= $this->common_url( 'img/wplr-sync.jpg' ) ?>' /><b>WP/LR Sync</b>
|
354 |
<?php echo $this->check_install( 'wplr-sync' ) ?><br />
|
362 |
</ul>
|
363 |
</div>
|
364 |
<div class="meow-box meow-col meow-span_1_of_2">
|
|
|
365 |
<ul class="">
|
366 |
<li><img src='<?= $this->common_url( 'img/media-file-renamer.jpg' ) ?>' /><b>Media File Renamer</b>
|
367 |
<?php echo $this->check_install( 'media-file-renamer' ) ?><br />
|
376 |
</div>
|
377 |
</div>
|
378 |
|
379 |
+
<h2>Recommendations</h2>
|
380 |
+
<div style="background: white; padding: 5px 15px 5px 15px; box-shadow: 2px 2px 1px rgba(0,0,0,.02);">
|
381 |
+
<p>
|
382 |
+
<?php _e( 'Too many WordPress installs are blown-up with useless and/or huge plugins, and bad practices. But that is because most users are overwhelmed by the diversity and immensity of the WordPress jungle. One rule of thumb is to keep your install the simplest as possible, with the least amount of plugins, in number and weight.', 'meowapps' )?>
|
383 |
+
</p>
|
384 |
+
<p>
|
385 |
+
<?php _e( 'Articles are kept being updated on the Meow Apps website, with all the latest recommendations. Please have a look and make your WordPress simpler, faster, better: ', 'meowapps' )?>
|
386 |
+
<a href='https://meowapps.com/debugging-wordpress/' target='_blank'>
|
387 |
+
How To Debug</a>,
|
388 |
+
<a href='https://meowapps.com/seo-optimization/' target='_blank'>
|
389 |
+
SEO Checklist & Optimization</a>,
|
390 |
+
<a href='https://meowapps.com/clean-optimize-wordpress/' target='_blank'>
|
391 |
+
Clean Up and Optimize</a>,
|
392 |
+
<a href='https://meowapps.com/optimize-images-cdn/' target='_blank'>
|
393 |
+
Optimize Images</a>,
|
394 |
+
<a href='https://meowapps.com/best-hosting-services-wordpress/' target='_blank'>
|
395 |
+
Best Hosting Services</a>.
|
396 |
+
</p>
|
397 |
+
</div>
|
398 |
+
|
399 |
+
<h2 style="margin-bottom: 0px; margin-top: 25px;">Common Options & Tools</h2>
|
400 |
<div class="meow-row">
|
401 |
<div class="meow-box meow-col meow-span_2_of_3">
|
402 |
<h3><span class="dashicons dashicons-admin-tools"></span> Common</h3>
|
436 |
</div>
|
437 |
</div>
|
438 |
|
|
|
439 |
<?php
|
|
|
440 |
}
|
|
|
441 |
echo "<br /><small style='color: lightgray;'>Meow Admin " . MeowApps_Admin::$admin_version . "</small></div>";
|
442 |
}
|
443 |
|
core.php
CHANGED
@@ -18,6 +18,7 @@ class Meow_WR2X_Core {
|
|
18 |
add_action( 'init', array( $this, 'init' ) );
|
19 |
include( __DIR__ . '/api.php' );
|
20 |
|
|
|
21 |
if ( is_admin() ) {
|
22 |
include( __DIR__ . '/ajax.php' );
|
23 |
new Meow_WR2X_Ajax( $this );
|
@@ -32,6 +33,15 @@ class Meow_WR2X_Core {
|
|
32 |
}
|
33 |
}
|
34 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
function init() {
|
36 |
//load_plugin_textdomain( 'wp-retina-2x', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
|
37 |
|
@@ -41,6 +51,10 @@ class Meow_WR2X_Core {
|
|
41 |
add_filter( 'intermediate_image_sizes_advanced', array( $this, 'unset_medium_large' ) );
|
42 |
}
|
43 |
|
|
|
|
|
|
|
|
|
44 |
if ( is_admin() ) {
|
45 |
wp_register_style( 'wr2x-admin-css', plugins_url( '/wr2x_admin.css', __FILE__ ) );
|
46 |
wp_enqueue_style( 'wr2x-admin-css' );
|
@@ -190,9 +204,18 @@ class Meow_WR2X_Core {
|
|
190 |
|
191 |
// INLINE CSS BACKGROUND
|
192 |
if ( get_option( 'wr2x_picturefill_css_background', false ) && $this->admin->is_registered() ) {
|
|
|
193 |
preg_match_all( "/url(?:\(['\"]?)(.*?)(?:['\"]?\))/", $buffer, $matches );
|
194 |
$match_css = $matches[0];
|
195 |
$match_url = $matches[1];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
196 |
if ( count( $matches ) != 2 )
|
197 |
return $buffer;
|
198 |
$nodes_count = 0;
|
@@ -219,6 +242,7 @@ class Meow_WR2X_Core {
|
|
219 |
$this->log( "$nodes_replaced/$nodes_count background src were replaced." );
|
220 |
}
|
221 |
|
|
|
222 |
return $buffer;
|
223 |
}
|
224 |
|
18 |
add_action( 'init', array( $this, 'init' ) );
|
19 |
include( __DIR__ . '/api.php' );
|
20 |
|
21 |
+
// In Admin
|
22 |
if ( is_admin() ) {
|
23 |
include( __DIR__ . '/ajax.php' );
|
24 |
new Meow_WR2X_Ajax( $this );
|
33 |
}
|
34 |
}
|
35 |
|
36 |
+
function is_rest() {
|
37 |
+
$prefix = rest_get_url_prefix() . '/';
|
38 |
+
$method = $_SERVER['REQUEST_METHOD'];
|
39 |
+
$uri = $_SERVER['REQUEST_URI'];
|
40 |
+
if ( strpos( $uri, $prefix ) !== false )
|
41 |
+
return true;
|
42 |
+
return false;
|
43 |
+
}
|
44 |
+
|
45 |
function init() {
|
46 |
//load_plugin_textdomain( 'wp-retina-2x', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
|
47 |
|
51 |
add_filter( 'intermediate_image_sizes_advanced', array( $this, 'unset_medium_large' ) );
|
52 |
}
|
53 |
|
54 |
+
if ( $this->is_rest() ) {
|
55 |
+
return;
|
56 |
+
}
|
57 |
+
|
58 |
if ( is_admin() ) {
|
59 |
wp_register_style( 'wr2x-admin-css', plugins_url( '/wr2x_admin.css', __FILE__ ) );
|
60 |
wp_enqueue_style( 'wr2x-admin-css' );
|
204 |
|
205 |
// INLINE CSS BACKGROUND
|
206 |
if ( get_option( 'wr2x_picturefill_css_background', false ) && $this->admin->is_registered() ) {
|
207 |
+
// Standard CSS background
|
208 |
preg_match_all( "/url(?:\(['\"]?)(.*?)(?:['\"]?\))/", $buffer, $matches );
|
209 |
$match_css = $matches[0];
|
210 |
$match_url = $matches[1];
|
211 |
+
// Lazy CSS background
|
212 |
+
preg_match_all( "/data-background=(?:['\"])(.*?)(?:['\"])/", $buffer, $matches );
|
213 |
+
$match_css = array_merge( $match_css, $matches[0] );
|
214 |
+
$match_url = array_merge( $match_url, $matches[1] );
|
215 |
+
// Lazy CSS background
|
216 |
+
preg_match_all( "/data-bigimg=(?:['\"])(.*?)(?:['\"])/", $buffer, $matches );
|
217 |
+
$match_css = array_merge( $match_css, $matches[0] );
|
218 |
+
$match_url = array_merge( $match_url, $matches[1] );
|
219 |
if ( count( $matches ) != 2 )
|
220 |
return $buffer;
|
221 |
$nodes_count = 0;
|
242 |
$this->log( "$nodes_replaced/$nodes_count background src were replaced." );
|
243 |
}
|
244 |
|
245 |
+
$html->clear();
|
246 |
return $buffer;
|
247 |
}
|
248 |
|
js/lazysizes.min.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
-
/*! lazysizes -
|
2 |
-
!function(a,b){var c=b(a,a.document);a.lazySizes=c,"object"==typeof module&&module.exports&&(module.exports=c)}(window,function(a,b){"use strict";if(
|
1 |
+
/*! lazysizes - v5.1.0 */
|
2 |
+
!function(a,b){var c=b(a,a.document);a.lazySizes=c,"object"==typeof module&&module.exports&&(module.exports=c)}("undefined"!=typeof window?window:{},function(a,b){"use strict";var c,d;if(function(){var b,c={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:0,throttleDelay:125};d=a.lazySizesConfig||a.lazysizesConfig||{};for(b in c)b in d||(d[b]=c[b])}(),!b||!b.getElementsByClassName)return{init:function(){},cfg:d,noSupport:!0};var e=b.documentElement,f=a.Date,g=a.HTMLPictureElement,h="addEventListener",i="getAttribute",j=a[h],k=a.setTimeout,l=a.requestAnimationFrame||k,m=a.requestIdleCallback,n=/^picture$/i,o=["load","error","lazyincluded","_lazyloaded"],p={},q=Array.prototype.forEach,r=function(a,b){return p[b]||(p[b]=new RegExp("(\\s|^)"+b+"(\\s|$)")),p[b].test(a[i]("class")||"")&&p[b]},s=function(a,b){r(a,b)||a.setAttribute("class",(a[i]("class")||"").trim()+" "+b)},t=function(a,b){var c;(c=r(a,b))&&a.setAttribute("class",(a[i]("class")||"").replace(c," "))},u=function(a,b,c){var d=c?h:"removeEventListener";c&&u(a,b),o.forEach(function(c){a[d](c,b)})},v=function(a,d,e,f,g){var h=b.createEvent("Event");return e||(e={}),e.instance=c,h.initEvent(d,!f,!g),h.detail=e,a.dispatchEvent(h),h},w=function(b,c){var e;!g&&(e=a.picturefill||d.pf)?(c&&c.src&&!b[i]("srcset")&&b.setAttribute("srcset",c.src),e({reevaluate:!0,elements:[b]})):c&&c.src&&(b.src=c.src)},x=function(a,b){return(getComputedStyle(a,null)||{})[b]},y=function(a,b,c){for(c=c||a.offsetWidth;c<d.minSize&&b&&!a._lazysizesWidth;)c=b.offsetWidth,b=b.parentNode;return c},z=function(){var a,c,d=[],e=[],f=d,g=function(){var b=f;for(f=d.length?e:d,a=!0,c=!1;b.length;)b.shift()();a=!1},h=function(d,e){a&&!e?d.apply(this,arguments):(f.push(d),c||(c=!0,(b.hidden?k:l)(g)))};return h._lsFlush=g,h}(),A=function(a,b){return b?function(){z(a)}:function(){var b=this,c=arguments;z(function(){a.apply(b,c)})}},B=function(a){var b,c=0,e=d.throttleDelay,g=d.ricTimeout,h=function(){b=!1,c=f.now(),a()},i=m&&g>49?function(){m(h,{timeout:g}),g!==d.ricTimeout&&(g=d.ricTimeout)}:A(function(){k(h)},!0);return function(a){var d;(a=!0===a)&&(g=33),b||(b=!0,d=e-(f.now()-c),d<0&&(d=0),a||d<9?i():k(i,d))}},C=function(a){var b,c,d=99,e=function(){b=null,a()},g=function(){var a=f.now()-c;a<d?k(g,d-a):(m||e)(e)};return function(){c=f.now(),b||(b=k(g,d))}},D=function(){var g,l,m,o,p,y,D,F,G,H,I,J,K=/^img$/i,L=/^iframe$/i,M="onscroll"in a&&!/(gle|ing)bot/.test(navigator.userAgent),N=0,O=0,P=0,Q=-1,R=function(a){P--,(!a||P<0||!a.target)&&(P=0)},S=function(a){return null==J&&(J="hidden"==x(b.body,"visibility")),J||"hidden"!=x(a.parentNode,"visibility")&&"hidden"!=x(a,"visibility")},T=function(a,c){var d,f=a,g=S(a);for(F-=c,I+=c,G-=c,H+=c;g&&(f=f.offsetParent)&&f!=b.body&&f!=e;)(g=(x(f,"opacity")||1)>0)&&"visible"!=x(f,"overflow")&&(d=f.getBoundingClientRect(),g=H>d.left&&G<d.right&&I>d.top-1&&F<d.bottom+1);return g},U=function(){var a,f,h,j,k,m,n,p,q,r,s,t,u=c.elements;if((o=d.loadMode)&&P<8&&(a=u.length)){for(f=0,Q++;f<a;f++)if(u[f]&&!u[f]._lazyRace)if(!M||c.prematureUnveil&&c.prematureUnveil(u[f]))aa(u[f]);else if((p=u[f][i]("data-expand"))&&(m=1*p)||(m=O),r||(r=!d.expand||d.expand<1?e.clientHeight>500&&e.clientWidth>500?500:370:d.expand,c._defEx=r,s=r*d.expFactor,t=d.hFac,J=null,O<s&&P<1&&Q>2&&o>2&&!b.hidden?(O=s,Q=0):O=o>1&&Q>1&&P<6?r:N),q!==m&&(y=innerWidth+m*t,D=innerHeight+m,n=-1*m,q=m),h=u[f].getBoundingClientRect(),(I=h.bottom)>=n&&(F=h.top)<=D&&(H=h.right)>=n*t&&(G=h.left)<=y&&(I||H||G||F)&&(d.loadHidden||S(u[f]))&&(l&&P<3&&!p&&(o<3||Q<4)||T(u[f],m))){if(aa(u[f]),k=!0,P>9)break}else!k&&l&&!j&&P<4&&Q<4&&o>2&&(g[0]||d.preloadAfterLoad)&&(g[0]||!p&&(I||H||G||F||"auto"!=u[f][i](d.sizesAttr)))&&(j=g[0]||u[f]);j&&!k&&aa(j)}},V=B(U),W=function(a){var b=a.target;if(b._lazyCache)return void delete b._lazyCache;R(a),s(b,d.loadedClass),t(b,d.loadingClass),u(b,Y),v(b,"lazyloaded")},X=A(W),Y=function(a){X({target:a.target})},Z=function(a,b){try{a.contentWindow.location.replace(b)}catch(c){a.src=b}},$=function(a){var b,c=a[i](d.srcsetAttr);(b=d.customMedia[a[i]("data-media")||a[i]("media")])&&a.setAttribute("media",b),c&&a.setAttribute("srcset",c)},_=A(function(a,b,c,e,f){var g,h,j,l,o,p;(o=v(a,"lazybeforeunveil",b)).defaultPrevented||(e&&(c?s(a,d.autosizesClass):a.setAttribute("sizes",e)),h=a[i](d.srcsetAttr),g=a[i](d.srcAttr),f&&(j=a.parentNode,l=j&&n.test(j.nodeName||"")),p=b.firesLoad||"src"in a&&(h||g||l),o={target:a},s(a,d.loadingClass),p&&(clearTimeout(m),m=k(R,2500),u(a,Y,!0)),l&&q.call(j.getElementsByTagName("source"),$),h?a.setAttribute("srcset",h):g&&!l&&(L.test(a.nodeName)?Z(a,g):a.src=g),f&&(h||l)&&w(a,{src:g})),a._lazyRace&&delete a._lazyRace,t(a,d.lazyClass),z(function(){var b=a.complete&&a.naturalWidth>1;p&&!b||(b&&s(a,"ls-is-cached"),W(o),a._lazyCache=!0,k(function(){"_lazyCache"in a&&delete a._lazyCache},9)),"lazy"==a.loading&&P--},!0)}),aa=function(a){if(!a._lazyRace){var b,c=K.test(a.nodeName),e=c&&(a[i](d.sizesAttr)||a[i]("sizes")),f="auto"==e;(!f&&l||!c||!a[i]("src")&&!a.srcset||a.complete||r(a,d.errorClass)||!r(a,d.lazyClass))&&(b=v(a,"lazyunveilread").detail,f&&E.updateElem(a,!0,a.offsetWidth),a._lazyRace=!0,P++,_(a,b,f,e,c))}},ba=C(function(){d.loadMode=3,V()}),ca=function(){3==d.loadMode&&(d.loadMode=2),ba()},da=function(){if(!l){if(f.now()-p<999)return void k(da,999);l=!0,d.loadMode=3,V(),j("scroll",ca,!0)}};return{_:function(){p=f.now(),c.elements=b.getElementsByClassName(d.lazyClass),g=b.getElementsByClassName(d.lazyClass+" "+d.preloadClass),j("scroll",V,!0),j("resize",V,!0),a.MutationObserver?new MutationObserver(V).observe(e,{childList:!0,subtree:!0,attributes:!0}):(e[h]("DOMNodeInserted",V,!0),e[h]("DOMAttrModified",V,!0),setInterval(V,999)),j("hashchange",V,!0),["focus","mouseover","click","load","transitionend","animationend"].forEach(function(a){b[h](a,V,!0)}),/d$|^c/.test(b.readyState)?da():(j("load",da),b[h]("DOMContentLoaded",V),k(da,2e4)),c.elements.length?(U(),z._lsFlush()):V()},checkElems:V,unveil:aa,_aLSL:ca}}(),E=function(){var a,c=A(function(a,b,c,d){var e,f,g;if(a._lazysizesWidth=d,d+="px",a.setAttribute("sizes",d),n.test(b.nodeName||""))for(e=b.getElementsByTagName("source"),f=0,g=e.length;f<g;f++)e[f].setAttribute("sizes",d);c.detail.dataAttr||w(a,c.detail)}),e=function(a,b,d){var e,f=a.parentNode;f&&(d=y(a,f,d),e=v(a,"lazybeforesizes",{width:d,dataAttr:!!b}),e.defaultPrevented||(d=e.detail.width)&&d!==a._lazysizesWidth&&c(a,f,e,d))},f=function(){var b,c=a.length;if(c)for(b=0;b<c;b++)e(a[b])},g=C(f);return{_:function(){a=b.getElementsByClassName(d.autosizesClass),j("resize",g)},checkElems:g,updateElem:e}}(),F=function(){!F.i&&b.getElementsByClassName&&(F.i=!0,E._(),D._())};return k(function(){d.init&&F()}),c={cfg:d,autoSizer:E,loader:D,init:F,uP:w,aC:s,rC:t,hC:r,fire:v,gW:y,rAF:z}});
|
readme.txt
CHANGED
@@ -1,30 +1,35 @@
|
|
1 |
=== WP Retina 2x ===
|
2 |
Contributors: TigrouMeow
|
3 |
Tags: retina, images, image, responsive, lazysizes, lazy, attachment, media, files, iphone, ipad, high-dpi
|
|
|
4 |
Requires at least: 4.4
|
5 |
-
Tested up to: 5.
|
6 |
Requires PHP: 7.0
|
7 |
-
Stable tag: 5.5.
|
8 |
|
9 |
Make your website look beautiful and crisp on modern displays by creating and displaying retina images. WP 4.4+ is also supported and enhanced.
|
10 |
|
11 |
== Description ==
|
12 |
|
13 |
-
This plugin does two things: it creates the image files required by the High-DPI devices and it displays them to your visitors accordingly. Your website will look beautiful and crisp on every device! The retina images will be generated for you automatically (though you can also do it manually) and served to the retina devices. The concept of retina images for full-size images is also a very unique feature which is only provided by this plugin (which is why it became unique).
|
14 |
|
15 |
-
|
|
|
16 |
|
17 |
-
|
|
|
18 |
|
19 |
-
|
|
|
20 |
|
21 |
-
|
|
|
22 |
|
23 |
-
|
|
|
24 |
|
25 |
-
|
26 |
-
|
27 |
-
More information and tutorial available one https://meowapps.com/wp-retina-2x/.
|
28 |
|
29 |
= Quickstart =
|
30 |
|
@@ -34,6 +39,9 @@ More information and tutorial available one https://meowapps.com/wp-retina-2x/.
|
|
34 |
|
35 |
== Changelog ==
|
36 |
|
|
|
|
|
|
|
37 |
= 5.5.5 =
|
38 |
* Fix: Display Full-Size Retina uploader only if the option is active.
|
39 |
|
1 |
=== WP Retina 2x ===
|
2 |
Contributors: TigrouMeow
|
3 |
Tags: retina, images, image, responsive, lazysizes, lazy, attachment, media, files, iphone, ipad, high-dpi
|
4 |
+
Donate link: https://commerce.coinbase.com/checkout/d047546a-77a8-41c8-9ea9-4a950f61832f
|
5 |
Requires at least: 4.4
|
6 |
+
Tested up to: 5.2
|
7 |
Requires PHP: 7.0
|
8 |
+
Stable tag: 5.5.6
|
9 |
|
10 |
Make your website look beautiful and crisp on modern displays by creating and displaying retina images. WP 4.4+ is also supported and enhanced.
|
11 |
|
12 |
== Description ==
|
13 |
|
14 |
+
This plugin does two things: it creates the image files required by the High-DPI devices and it displays them to your visitors accordingly. Your website will look beautiful and crisp on every device! The retina images will be generated for you automatically (though you can also do it manually) and served to the retina devices. The concept of retina images for full-size images is also a very unique feature which is only provided by this plugin (which is why it became unique). More information and tutorial available on the [official website](https://meowapps.com/plugin/wp-retina-2x/).
|
15 |
|
16 |
+
=== Retina Methods ===
|
17 |
+
It supports different methods to serve the images to your visitors. Why? Depending on the theme and plugins you are using (and also the way you use images in your website), not all the methods can work. Ideally, I would recommend using the Responsive Images method, then if it doesn't work, the PictureFill method (which covers normally most cases). Retina.js should be the fallback method. There are more methods than this with their specific options.
|
18 |
|
19 |
+
=== Plug & Play ===
|
20 |
+
With a well-made theme and website, this plugin doesn't require normally any specific set-up. All the defaults settings are fine. Works with multi-site and many kinds of installs.
|
21 |
|
22 |
+
=== Responsive Images ===
|
23 |
+
WP has support for Responsive Images and this plugin handles this nicely by adding the retina images in the src-set created by WordPress. The HTML for the images not handled by WP 4.4 (outside posts) will also be handled by the plugin (pick "Picturefill" method for this). The plugin also provides an option to disable the 'Medium Large' created by WordPress which is actually not useful (it's a hack basically), this plugin does it better.
|
24 |
|
25 |
+
=== Optimized ===
|
26 |
+
The plugin is very fast and optimized. It doesn't create anything in the database.
|
27 |
|
28 |
+
=== Pro Version ===
|
29 |
+
The Pro version adds support for Retina for full-size, support for lazy-loading for your responsive images and various options. And it supports my work :)
|
30 |
|
31 |
+
=== CSS & Background Images ===
|
32 |
+
The plugin cannot inject CSS to handles the images added through CSS, that's both too dangerous and potentially very incorrect. However, in its Pro version and with PictureFill, you get an option to replace the inline CSS background image by their retina equivalent.
|
|
|
33 |
|
34 |
= Quickstart =
|
35 |
|
39 |
|
40 |
== Changelog ==
|
41 |
|
42 |
+
= 5.5.6 =
|
43 |
+
* Update: Lazysizes updated to 5.1.0 (from 4.0.4).
|
44 |
+
|
45 |
= 5.5.5 =
|
46 |
* Fix: Display Full-Size Retina uploader only if the option is active.
|
47 |
|
wp-retina-2x.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: WP Retina 2x
|
4 |
Plugin URI: https://meowapps.com
|
5 |
Description: Make your website look beautiful and crisp on modern displays by creating + displaying retina images.
|
6 |
-
Version: 5.5.
|
7 |
Author: Jordy Meow
|
8 |
Author URI: https://meowapps.com
|
9 |
Text Domain: wp-retina-2x
|
@@ -29,10 +29,10 @@ if ( class_exists( 'Meow_WR2X_Core' ) ) {
|
|
29 |
global $wr2x_picturefill, $wr2x_retinajs, $wr2x_lazysizes,
|
30 |
$wr2x_retina_image, $wr2x_core;
|
31 |
|
32 |
-
$wr2x_version = '5.5.
|
33 |
$wr2x_retinajs = '2.0.0';
|
34 |
$wr2x_picturefill = '3.0.2';
|
35 |
-
$wr2x_lazysizes = '
|
36 |
$wr2x_retina_image = '1.7.2';
|
37 |
|
38 |
// Admin
|
3 |
Plugin Name: WP Retina 2x
|
4 |
Plugin URI: https://meowapps.com
|
5 |
Description: Make your website look beautiful and crisp on modern displays by creating + displaying retina images.
|
6 |
+
Version: 5.5.6
|
7 |
Author: Jordy Meow
|
8 |
Author URI: https://meowapps.com
|
9 |
Text Domain: wp-retina-2x
|
29 |
global $wr2x_picturefill, $wr2x_retinajs, $wr2x_lazysizes,
|
30 |
$wr2x_retina_image, $wr2x_core;
|
31 |
|
32 |
+
$wr2x_version = '5.5.6';
|
33 |
$wr2x_retinajs = '2.0.0';
|
34 |
$wr2x_picturefill = '3.0.2';
|
35 |
+
$wr2x_lazysizes = '5.1.0';
|
36 |
$wr2x_retina_image = '1.7.2';
|
37 |
|
38 |
// Admin
|
wr2x_admin.php
CHANGED
@@ -107,8 +107,6 @@ class Meow_WR2X_Admin extends MeowApps_Admin {
|
|
107 |
if ( $w >= $large_w || $h >= $large_h ) $defaults[$name] = 1;
|
108 |
}
|
109 |
register_setting( 'wr2x_settings', 'wr2x_ignore_sizes', array ( 'default' => $defaults ) );
|
110 |
-
|
111 |
-
register_setting( 'wr2x_settings', 'wr2x_auto_generate' );
|
112 |
register_setting( 'wr2x_settings', 'wr2x_full_size' );
|
113 |
register_setting( 'wr2x_settings', 'wr2x_method' );
|
114 |
register_setting( 'wr2x_settings', 'wr2x_quality' );
|
107 |
if ( $w >= $large_w || $h >= $large_h ) $defaults[$name] = 1;
|
108 |
}
|
109 |
register_setting( 'wr2x_settings', 'wr2x_ignore_sizes', array ( 'default' => $defaults ) );
|
|
|
|
|
110 |
register_setting( 'wr2x_settings', 'wr2x_full_size' );
|
111 |
register_setting( 'wr2x_settings', 'wr2x_method' );
|
112 |
register_setting( 'wr2x_settings', 'wr2x_quality' );
|