Cachify - Version 2.1.7

Version Description

  • Kein Caching der Seiten im WooCommerce-Checkout
  • Cache-Leerung bei Custom Post Types
  • Einfhrung zustzlicher Sicherheitsabfragen
  • Code-Refactoring
Download this release

Release Info

Developer sergej.mueller
Plugin Icon 128x128 Cachify
Version 2.1.7
Comparing to
See all releases

Code changes from version 2.1.6 to 2.1.7

cachify.php CHANGED
@@ -3,11 +3,11 @@
3
  Plugin Name: Cachify
4
  Text Domain: cachify
5
  Domain Path: /lang
6
- Description: Easy to use WordPress cache plugin with static file serving in the database, hard disc, memcached and apc.
7
  Author: Sergej Müller
8
  Author URI: http://wpcoder.de
9
  Plugin URI: http://cachify.de
10
- Version: 2.1.6
11
  */
12
 
13
 
@@ -27,8 +27,7 @@ add_action(
27
  array(
28
  'Cachify',
29
  'instance'
30
- ),
31
- 99
32
  );
33
  register_activation_hook(
34
  __FILE__,
3
  Plugin Name: Cachify
4
  Text Domain: cachify
5
  Domain Path: /lang
6
+ Description: Easy to use WordPress caching plugin. Serving static blog pages from Database, Hard Disc, Memcached or APC.
7
  Author: Sergej Müller
8
  Author URI: http://wpcoder.de
9
  Plugin URI: http://cachify.de
10
+ Version: 2.1.7
11
  */
12
 
13
 
27
  array(
28
  'Cachify',
29
  'instance'
30
+ )
 
31
  );
32
  register_activation_hook(
33
  __FILE__,
inc/cachify.class.php CHANGED
@@ -74,21 +74,26 @@ final class Cachify {
74
  * Konstruktor der Klasse
75
  *
76
  * @since 1.0.0
77
- * @change 2.1.3
 
 
 
78
  */
79
 
80
  public function __construct()
81
  {
82
- /* Filter */
83
- if ( ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) OR ( defined('DONOTCACHEPAGE') && DONOTCACHEPAGE ) ) {
84
- return;
85
- }
86
-
87
  /* Set defaults */
88
  self::_set_default_vars();
89
 
90
- /* Publish-Hooks */
91
- self::_register_publish_hooks();
 
 
 
 
 
 
 
92
 
93
  /* Flush Hooks */
94
  add_action(
@@ -288,7 +293,7 @@ final class Cachify {
288
 
289
  /* Loopen */
290
  foreach ($ids as $id) {
291
- switch_to_blog( (int)$id );
292
  self::_install_backend();
293
  }
294
 
@@ -308,14 +313,15 @@ final class Cachify {
308
  * @change 1.0
309
  */
310
 
311
- public static function install_later($id) {
 
312
  /* Kein Netzwerk-Plugin */
313
  if ( ! is_plugin_active_for_network(CACHIFY_BASE) ) {
314
  return;
315
  }
316
 
317
  /* Wechsel */
318
- switch_to_blog( (int)$id );
319
 
320
  /* Installieren */
321
  self::_install_backend();
@@ -357,7 +363,7 @@ final class Cachify {
357
  global $wpdb;
358
 
359
  /* Multisite & Network */
360
- if ( is_multisite() && !empty($_GET['networkwide']) ) {
361
  /* Alter Blog */
362
  $old = $wpdb->blogid;
363
 
@@ -393,7 +399,7 @@ final class Cachify {
393
  }
394
 
395
  /* Wechsel */
396
- switch_to_blog( (int)$id );
397
 
398
  /* Installieren */
399
  self::_uninstall_backend();
@@ -606,7 +612,7 @@ final class Cachify {
606
  }
607
 
608
  /* Display the admin icon anytime */
609
- echo '<style>#wp-admin-bar-cachify{display:list-item !important} .ab-icon:before{content:"\f182";top:2px;margin:0}</style>';
610
 
611
  /* Hinzufügen */
612
  $wp_admin_bar->add_menu(
@@ -848,11 +854,15 @@ final class Cachify {
848
  /**
849
  * Generierung von Publish-Hooks für Custom Post Types
850
  *
 
851
  * @since 2.0.3
852
- * @change 2.1.3
 
 
853
  */
854
 
855
- private static function _register_publish_hooks() {
 
856
  /* Available post types */
857
  $post_types = get_post_types(
858
  array('public' => true)
@@ -863,7 +873,7 @@ final class Cachify {
863
  return;
864
  }
865
 
866
- /* Loopen */
867
  foreach ( $post_types as $post_type ) {
868
  add_action(
869
  'publish_' .$post_type,
@@ -886,15 +896,16 @@ final class Cachify {
886
 
887
 
888
  /**
889
- * Removes the post type cache on updates
890
  *
891
  * @since 2.0.3
892
- * @change 2.1.3
893
  *
894
  * @param integer $post_ID Post ID
895
  */
896
 
897
- public static function publish_post_types($post_ID, $post) {
 
898
  /* No Post_ID? */
899
  if ( empty($post_ID) OR empty($post) ) {
900
  return;
@@ -913,6 +924,11 @@ final class Cachify {
913
  /* Security */
914
  check_admin_referer(CACHIFY_BASE, '_cachify_status_nonce');
915
 
 
 
 
 
 
916
  /* Save as var */
917
  $remove_post_type_cache = (int)$_POST['_cachify_remove_post_type_cache_on_update'];
918
 
@@ -985,15 +1001,15 @@ final class Cachify {
985
  /**
986
  * Rückgabe der Cache-Gültigkeit
987
  *
988
- * @since 2.0
989
- * @change 2.0
990
  *
991
  * @return intval Gültigkeit in Sekunden
992
  */
993
 
994
  private static function _cache_expires()
995
  {
996
- return 60 * 60 * self::$options['cache_expires'];
997
  }
998
 
999
 
@@ -1095,7 +1111,7 @@ final class Cachify {
1095
  * Definition der Ausnahmen für den Cache
1096
  *
1097
  * @since 0.2
1098
- * @change 2.1.1
1099
  *
1100
  * @return boolean TRUE bei Ausnahmen
1101
  *
@@ -1110,7 +1126,12 @@ final class Cachify {
1110
  }
1111
 
1112
  /* Conditional Tags */
1113
- if ( self::_is_index() or is_search() or is_404() or is_feed() or is_trackback() or is_robots() or is_preview() or post_password_required() ) {
 
 
 
 
 
1114
  return true;
1115
  }
1116
 
@@ -1118,7 +1139,7 @@ final class Cachify {
1118
  $options = self::$options;
1119
 
1120
  /* Request vars */
1121
- if ( !empty($_POST) OR (!empty($_GET) && get_option('permalink_structure')) ) {
1122
  return true;
1123
  }
1124
 
@@ -1162,7 +1183,8 @@ final class Cachify {
1162
  * @hook array cachify_minify_ignore_tags
1163
  */
1164
 
1165
- private static function _minify_cache($data) {
 
1166
  /* Disabled? */
1167
  if ( ! self::$options['compress_html'] ) {
1168
  return($data);
@@ -1358,7 +1380,7 @@ final class Cachify {
1358
  * Display a combo select on post publish box
1359
  *
1360
  * @since 2.1.3
1361
- * @change 2.1.3
1362
  */
1363
 
1364
  public static function print_flush_dropdown()
@@ -1373,6 +1395,11 @@ final class Cachify {
1373
  return;
1374
  }
1375
 
 
 
 
 
 
1376
  /* Security */
1377
  wp_nonce_field(CACHIFY_BASE, '_cachify_status_nonce');
1378
 
@@ -1541,7 +1568,7 @@ final class Cachify {
1541
 
1542
 
1543
  /**
1544
- * Valisierung der Optionsseite
1545
  *
1546
  * @since 1.0.0
1547
  * @change 2.1.3
@@ -1585,7 +1612,7 @@ final class Cachify {
1585
  * Darstellung der Optionsseite
1586
  *
1587
  * @since 1.0
1588
- * @change 2.1.3
1589
  */
1590
 
1591
  public static function options_page()
@@ -1625,11 +1652,11 @@ final class Cachify {
1625
 
1626
  <tr valign="top">
1627
  <th scope="row">
1628
- <?php _e('Cache validity', 'cachify') ?>
1629
  </th>
1630
  <td>
1631
  <label for="cachify_cache_expires">
1632
- <input type="number" min="0" step="1" name="cachify[cache_expires]" id="cachify_cache_expires" value="<?php echo $options['cache_expires'] ?>" class="small-text" />
1633
  <?php _e('Hours', 'cachify') ?>
1634
  </label>
1635
  </td>
@@ -1663,14 +1690,14 @@ final class Cachify {
1663
  <td>
1664
  <fieldset>
1665
  <label for="cachify_without_ids">
1666
- <input type="text" name="cachify[without_ids]" id="cachify_without_ids" value="<?php echo $options['without_ids'] ?>" />
1667
  Post/Pages-IDs
1668
  </label>
1669
 
1670
  <br />
1671
 
1672
  <label for="cachify_without_agents">
1673
- <input type="text" name="cachify[without_agents]" id="cachify_without_agents" value="<?php echo $options['without_agents'] ?>" />
1674
  Browser User-Agents
1675
  </label>
1676
  </fieldset>
@@ -1696,7 +1723,7 @@ final class Cachify {
1696
 
1697
  <tr valign="top">
1698
  <th scope="row">
1699
- <input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />
1700
  </th>
1701
  <td>
1702
  <a href="http://playground.ebiene.de/cachify-wordpress-cache/" target="_blank"><?php _e('Manual', 'cachify') ?></a> &bull; <a href="http://playground.ebiene.de/cachify-wordpress-cache/#book" target="_blank"><?php _e('Books', 'cachify') ?></a> &bull; <a href="https://flattr.com/t/1327625" target="_blank">Flattr</a> &bull; <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=5RDDW9FEHGLG6" target="_blank">PayPal</a>
74
  * Konstruktor der Klasse
75
  *
76
  * @since 1.0.0
77
+ * @change 2.1.7
78
+ *
79
+ * @param void
80
+ * @return void
81
  */
82
 
83
  public function __construct()
84
  {
 
 
 
 
 
85
  /* Set defaults */
86
  self::_set_default_vars();
87
 
88
+ /* Publish hooks */
89
+ add_action(
90
+ 'init',
91
+ array(
92
+ __CLASS__,
93
+ 'register_publish_hooks'
94
+ ),
95
+ 99
96
+ );
97
 
98
  /* Flush Hooks */
99
  add_action(
293
 
294
  /* Loopen */
295
  foreach ($ids as $id) {
296
+ switch_to_blog($id);
297
  self::_install_backend();
298
  }
299
 
313
  * @change 1.0
314
  */
315
 
316
+ public static function install_later($id)
317
+ {
318
  /* Kein Netzwerk-Plugin */
319
  if ( ! is_plugin_active_for_network(CACHIFY_BASE) ) {
320
  return;
321
  }
322
 
323
  /* Wechsel */
324
+ switch_to_blog($id);
325
 
326
  /* Installieren */
327
  self::_install_backend();
363
  global $wpdb;
364
 
365
  /* Multisite & Network */
366
+ if ( is_multisite() && ! empty($_GET['networkwide']) ) {
367
  /* Alter Blog */
368
  $old = $wpdb->blogid;
369
 
399
  }
400
 
401
  /* Wechsel */
402
+ switch_to_blog($id);
403
 
404
  /* Installieren */
405
  self::_uninstall_backend();
612
  }
613
 
614
  /* Display the admin icon anytime */
615
+ echo '<style>#wp-admin-bar-cachify{display:list-item !important} .ab-icon{margin:0 !important} .ab-icon:before{content:"\f182";top:2px;margin:0}</style>';
616
 
617
  /* Hinzufügen */
618
  $wp_admin_bar->add_menu(
854
  /**
855
  * Generierung von Publish-Hooks für Custom Post Types
856
  *
857
+ * @since 2.1.7 Make the function public
858
  * @since 2.0.3
859
+ *
860
+ * @param void
861
+ * @return void
862
  */
863
 
864
+ public static function register_publish_hooks()
865
+ {
866
  /* Available post types */
867
  $post_types = get_post_types(
868
  array('public' => true)
873
  return;
874
  }
875
 
876
+ /* Loop the post types */
877
  foreach ( $post_types as $post_type ) {
878
  add_action(
879
  'publish_' .$post_type,
896
 
897
 
898
  /**
899
+ * Removes the post type cache on post updates
900
  *
901
  * @since 2.0.3
902
+ * @change 2.1.7
903
  *
904
  * @param integer $post_ID Post ID
905
  */
906
 
907
+ public static function publish_post_types($post_ID, $post)
908
+ {
909
  /* No Post_ID? */
910
  if ( empty($post_ID) OR empty($post) ) {
911
  return;
924
  /* Security */
925
  check_admin_referer(CACHIFY_BASE, '_cachify_status_nonce');
926
 
927
+ /* Check user role */
928
+ if ( ! current_user_can('publish_posts') ) {
929
+ return;
930
+ }
931
+
932
  /* Save as var */
933
  $remove_post_type_cache = (int)$_POST['_cachify_remove_post_type_cache_on_update'];
934
 
1001
  /**
1002
  * Rückgabe der Cache-Gültigkeit
1003
  *
1004
+ * @since 2.0.0
1005
+ * @change 2.1.7
1006
  *
1007
  * @return intval Gültigkeit in Sekunden
1008
  */
1009
 
1010
  private static function _cache_expires()
1011
  {
1012
+ return HOUR_IN_SECONDS * self::$options['cache_expires'];
1013
  }
1014
 
1015
 
1111
  * Definition der Ausnahmen für den Cache
1112
  *
1113
  * @since 0.2
1114
+ * @change 2.1.7
1115
  *
1116
  * @return boolean TRUE bei Ausnahmen
1117
  *
1126
  }
1127
 
1128
  /* Conditional Tags */
1129
+ if ( self::_is_index() OR is_search() OR is_404() OR is_feed() OR is_trackback() OR is_robots() OR is_preview() OR post_password_required() ) {
1130
+ return true;
1131
+ }
1132
+
1133
+ /* WooCommerce usage */
1134
+ if ( defined('DONOTCACHEPAGE') && DONOTCACHEPAGE ) {
1135
  return true;
1136
  }
1137
 
1139
  $options = self::$options;
1140
 
1141
  /* Request vars */
1142
+ if ( ! empty($_POST) OR ( ! empty($_GET) && get_option('permalink_structure') ) ) {
1143
  return true;
1144
  }
1145
 
1183
  * @hook array cachify_minify_ignore_tags
1184
  */
1185
 
1186
+ private static function _minify_cache($data)
1187
+ {
1188
  /* Disabled? */
1189
  if ( ! self::$options['compress_html'] ) {
1190
  return($data);
1380
  * Display a combo select on post publish box
1381
  *
1382
  * @since 2.1.3
1383
+ * @change 2.1.7
1384
  */
1385
 
1386
  public static function print_flush_dropdown()
1395
  return;
1396
  }
1397
 
1398
+ /* Check user role */
1399
+ if ( ! current_user_can('publish_posts') ) {
1400
+ return;
1401
+ }
1402
+
1403
  /* Security */
1404
  wp_nonce_field(CACHIFY_BASE, '_cachify_status_nonce');
1405
 
1568
 
1569
 
1570
  /**
1571
+ * Validierung der Optionsseite
1572
  *
1573
  * @since 1.0.0
1574
  * @change 2.1.3
1612
  * Darstellung der Optionsseite
1613
  *
1614
  * @since 1.0
1615
+ * @change 2.1.7
1616
  */
1617
 
1618
  public static function options_page()
1652
 
1653
  <tr valign="top">
1654
  <th scope="row">
1655
+ <?php _e('Cache expiration', 'cachify') ?>
1656
  </th>
1657
  <td>
1658
  <label for="cachify_cache_expires">
1659
+ <input type="number" min="0" step="1" name="cachify[cache_expires]" id="cachify_cache_expires" value="<?php echo esc_attr($options['cache_expires']) ?>" class="small-text" />
1660
  <?php _e('Hours', 'cachify') ?>
1661
  </label>
1662
  </td>
1690
  <td>
1691
  <fieldset>
1692
  <label for="cachify_without_ids">
1693
+ <input type="text" name="cachify[without_ids]" id="cachify_without_ids" value="<?php echo esc_attr($options['without_ids']) ?>" />
1694
  Post/Pages-IDs
1695
  </label>
1696
 
1697
  <br />
1698
 
1699
  <label for="cachify_without_agents">
1700
+ <input type="text" name="cachify[without_agents]" id="cachify_without_agents" value="<?php echo esc_attr($options['without_agents']) ?>" />
1701
  Browser User-Agents
1702
  </label>
1703
  </fieldset>
1723
 
1724
  <tr valign="top">
1725
  <th scope="row">
1726
+ <?php submit_button() ?>
1727
  </th>
1728
  <td>
1729
  <a href="http://playground.ebiene.de/cachify-wordpress-cache/" target="_blank"><?php _e('Manual', 'cachify') ?></a> &bull; <a href="http://playground.ebiene.de/cachify-wordpress-cache/#book" target="_blank"><?php _e('Books', 'cachify') ?></a> &bull; <a href="https://flattr.com/t/1327625" target="_blank">Flattr</a> &bull; <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=5RDDW9FEHGLG6" target="_blank">PayPal</a>
lang/cachify-de_DE.mo CHANGED
Binary file
lang/cachify-de_DE.po CHANGED
@@ -51,7 +51,7 @@ msgstr "Festplatte"
51
  msgid "Cache method"
52
  msgstr "Cache-Aufbewahrungsort"
53
 
54
- msgid "Cache validity"
55
  msgstr "Cache-Gültigkeit"
56
 
57
  msgid "Hours"
@@ -78,6 +78,6 @@ msgstr "Dokumentation"
78
  msgid "Books"
79
  msgstr "Handbücher"
80
 
81
- msgid "Easy to use WordPress cache plugin with static file serving in the database, hard disc, memcached and apc."
82
- msgstr "Smarter Cache für WordPress. Reduziert die Ladezeit der Blogseiten, indem Inhalte in statischer Form abgelegt und ausgeliefert werden."
83
 
51
  msgid "Cache method"
52
  msgstr "Cache-Aufbewahrungsort"
53
 
54
+ msgid "Cache expiration"
55
  msgstr "Cache-Gültigkeit"
56
 
57
  msgid "Hours"
78
  msgid "Books"
79
  msgstr "Handbücher"
80
 
81
+ msgid "Easy to use WordPress caching plugin. Serving static blog pages from Database, Hard Disc, Memcached or APC."
82
+ msgstr "Smarter Cache für WordPress. Zwischenspeicherung der Inhalte als statische Dateien wahlweise in der Datenbank, Festplatte, Memcached oder APC."
83
 
readme.txt CHANGED
@@ -10,12 +10,14 @@ License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
 
12
 
13
- Turbo für WordPress. Smarte, aber effiziente Cache-Lösung für WordPress. Mit der Konzentration aufs Wesentliche.
14
 
15
 
16
 
17
  == Description ==
18
 
 
 
19
  = Unkompliziert und ausbaufähig =
20
  *Cachify* optimiert Ladezeit der Blogseiten, indem Seiteninhalte in statischer Form wahlweise in der Datenbank, auf der Festplatte (HDD) oder dank APC (Alternative PHP Cache) im Speicher des Webservers abgelegt und beim Seitenaufruf ohne Umwege ausgegeben werden. Die Anzahl der DB-Anfragen und PHP-Anweisungen reduziert sich je nach gewählter Methode gegen Null.
21
 
@@ -38,7 +40,7 @@ Turbo für WordPress. Smarte, aber effiziente Cache-Lösung für WordPress. Mit
38
 
39
 
40
  > #### Cachify-Handbuch
41
- > Als Begleithandbuch und Installationshilfe für *Cachify* wurden ein Kindle-eBook und ein gedrucktes Taschenbuch mit dem Titel „[WordPress Performance](http://www.amazon.de/dp/B0091LDUVA "WordPress Performance"): Beschleunigung der Blogseiten durch Caching“ konzipiert und veröffentlicht. Beide Handbücher beleuchten verfügbare Caching-Methoden, empfehlen Plugin-Einstellungen und liefern wertvolle Tipps & Tricks zur Geschwindigkeitsoptimierung unter WordPress.
42
 
43
 
44
  = Support =
@@ -75,6 +77,12 @@ Freundlich formulierte Fragen rund um das Plugin werden per E-Mail beantwortet.
75
 
76
  == Changelog ==
77
 
 
 
 
 
 
 
78
  = 2.1.6 =
79
  * Button "Cache leeren" sichtbar sowohl in WP 3.8 wie WP 3.9
80
 
10
 
11
 
12
 
13
+ Smart but efficient cache solution for WordPress. Use DB, HDD, APC or Memcached for storing your blog pages. Make WordPress faster!
14
 
15
 
16
 
17
  == Description ==
18
 
19
+ *Notice: The plugin is available in English and German.*
20
+
21
  = Unkompliziert und ausbaufähig =
22
  *Cachify* optimiert Ladezeit der Blogseiten, indem Seiteninhalte in statischer Form wahlweise in der Datenbank, auf der Festplatte (HDD) oder dank APC (Alternative PHP Cache) im Speicher des Webservers abgelegt und beim Seitenaufruf ohne Umwege ausgegeben werden. Die Anzahl der DB-Anfragen und PHP-Anweisungen reduziert sich je nach gewählter Methode gegen Null.
23
 
40
 
41
 
42
  > #### Cachify-Handbuch
43
+ > Als Begleithandbuch und Installationshilfe für *Cachify* wurden ein Kindle-eBook und ein gedrucktes Taschenbuch mit dem Titel „[WordPress Performance](http://www.amazon.de/dp/B0091LDUVA "WordPress Performance"): Beschleunigung der Blogseiten durch Caching“ veröffentlicht. Beide Handbücher beleuchten verfügbare Caching-Methoden, empfehlen Plugin-Einstellungen und liefern wertvolle Tipps & Tricks zur Geschwindigkeitsoptimierung unter WordPress.
44
 
45
 
46
  = Support =
77
 
78
  == Changelog ==
79
 
80
+ = 2.1.7 =
81
+ * Kein Caching der Seiten im WooCommerce-Checkout
82
+ * Cache-Leerung bei Custom Post Types
83
+ * Einführung zusätzlicher Sicherheitsabfragen
84
+ * Code-Refactoring
85
+
86
  = 2.1.6 =
87
  * Button "Cache leeren" sichtbar sowohl in WP 3.8 wie WP 3.9
88