Cachify - Version 2.0.3

Version Description

  • Cache-Leerung beim Verffentlichen verfgbarer Custom Post Types
  • Noindex in der von WordPress generierten robots.txt fr den Ordner mit HDD-Cache
  • Hook cachify_flush_cache zum Leeren des Cache aus Drittanwendungen
Download this release

Release Info

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

Code changes from version 2.0.2 to 2.0.3

Files changed (3) hide show
  1. cachify.php +4 -3
  2. inc/cachify.class.php +107 -53
  3. readme.txt +7 -1
cachify.php CHANGED
@@ -5,7 +5,7 @@ Description: Smarter Cache für WordPress. Reduziert die Ladezeit der Blogseiten
5
  Author: Sergej Müller
6
  Author URI: http://wpseo.de
7
  Plugin URI: http://cachify.de
8
- Version: 2.0.2
9
  */
10
 
11
 
@@ -32,11 +32,12 @@ if ( ! (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) ) {
32
 
33
  /* Init */
34
  add_action(
35
- 'plugins_loaded',
36
  array(
37
  'Cachify',
38
  'init'
39
- )
 
40
  );
41
 
42
  /* Install */
5
  Author: Sergej Müller
6
  Author URI: http://wpseo.de
7
  Plugin URI: http://cachify.de
8
+ Version: 2.0.3
9
  */
10
 
11
 
32
 
33
  /* Init */
34
  add_action(
35
+ 'init',
36
  array(
37
  'Cachify',
38
  'init'
39
+ ),
40
+ 99
41
  );
42
 
43
  /* Install */
inc/cachify.class.php CHANGED
@@ -32,7 +32,7 @@ final class Cachify {
32
  * Initialisierung des Plugins
33
  *
34
  * @since 1.0
35
- * @change 2.0.1
36
  */
37
 
38
  public static function init()
@@ -40,29 +40,18 @@ final class Cachify {
40
  /* Variablen */
41
  self::_set_vars();
42
 
43
- /* Publish Single */
44
- add_action(
45
- 'publish_future_post',
46
- array(
47
- __CLASS__,
48
- 'publish_post'
49
- )
50
- );
51
- add_action(
52
- 'publish_post',
53
- array(
54
- __CLASS__,
55
- 'publish_post'
56
- )
57
- );
58
  add_action(
59
- 'publish_page',
60
  array(
61
  __CLASS__,
62
- 'publish_page'
63
  )
64
  );
65
-
66
  /* Backend */
67
  if ( is_admin() ) {
68
  add_action(
@@ -176,6 +165,13 @@ final class Cachify {
176
  ),
177
  0
178
  );
 
 
 
 
 
 
 
179
  }
180
  }
181
 
@@ -371,6 +367,46 @@ final class Cachify {
371
  }
372
 
373
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
374
  /**
375
  * Rückgabe der Optionen
376
  *
@@ -396,6 +432,37 @@ final class Cachify {
396
  }
397
 
398
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
399
  /**
400
  * Hinzufügen der Action-Links
401
  *
@@ -660,45 +727,27 @@ final class Cachify {
660
  );
661
  }
662
  }
663
-
664
-
665
- /**
666
- * Leerung des Cache bei neuen Beiträgen
667
  *
668
- * @since 0.1
669
- * @change 0.9.1
670
  *
671
- * @param intval $id ID des Beitrags
 
672
  */
673
 
674
- public static function publish_post($id)
675
  {
676
- /* Post */
677
- $post = get_post($id);
678
-
679
- /* Löschen */
680
- if ( in_array( $post->post_status, array('publish', 'future') ) ) {
681
- self::flush_cache();
682
  }
683
- }
684
-
685
-
686
- /**
687
- * Leerung des Cache bei neuen Beiträgen
688
- *
689
- * @since 1.0
690
- * @change 1.0
691
- *
692
- * @param intval $id ID des Beitrags
693
- */
694
-
695
- public static function publish_page($id)
696
- {
697
- /* Page */
698
- $page = get_page($id);
699
-
700
- /* Löschen */
701
- if ( $page->post_status == 'publish' ) {
702
  self::flush_cache();
703
  }
704
  }
@@ -847,7 +896,12 @@ final class Cachify {
847
  $options = self::$options;
848
 
849
  /* Filter */
850
- if ( !empty($_POST) or 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() ) {
 
 
 
 
 
851
  return true;
852
  }
853
 
32
  * Initialisierung des Plugins
33
  *
34
  * @since 1.0
35
+ * @change 2.0.3
36
  */
37
 
38
  public static function init()
40
  /* Variablen */
41
  self::_set_vars();
42
 
43
+ /* Publish-Hooks */
44
+ self::_publish_hooks();
45
+
46
+ /* Flush Hook */
 
 
 
 
 
 
 
 
 
 
 
47
  add_action(
48
+ 'cachify_flush_cache',
49
  array(
50
  __CLASS__,
51
+ 'flush_cache'
52
  )
53
  );
54
+
55
  /* Backend */
56
  if ( is_admin() ) {
57
  add_action(
165
  ),
166
  0
167
  );
168
+ add_action(
169
+ 'robots_txt',
170
+ array(
171
+ __CLASS__,
172
+ 'robots_txt'
173
+ )
174
+ );
175
  }
176
  }
177
 
367
  }
368
 
369
 
370
+ /**
371
+ * Generierung von Publish-Hooks für Custom Post Types
372
+ *
373
+ * @since 2.0.3
374
+ * @change 2.0.3
375
+ */
376
+
377
+ private static function _publish_hooks() {
378
+ /* Verfügbare CPT */
379
+ $available_cpt = get_post_types(
380
+ array('public' => true)
381
+ );
382
+
383
+ /* Leer? */
384
+ if ( empty($available_cpt) ) {
385
+ return;
386
+ }
387
+
388
+ /* Loopen */
389
+ foreach ( $available_cpt as $cpt ) {
390
+ add_action(
391
+ 'publish_' .$cpt,
392
+ array(
393
+ __CLASS__,
394
+ 'publish_cpt'
395
+ ),
396
+ 10,
397
+ 2
398
+ );
399
+ add_action(
400
+ 'publish_future_' .$cpt,
401
+ array(
402
+ __CLASS__,
403
+ 'publish_cpt'
404
+ )
405
+ );
406
+ }
407
+ }
408
+
409
+
410
  /**
411
  * Rückgabe der Optionen
412
  *
432
  }
433
 
434
 
435
+ /**
436
+ * Hinzufügen der Action-Links
437
+ *
438
+ * @since 1.0
439
+ * @change 2.0.2
440
+ *
441
+ * @param string $data Ursprungsinhalt der dynamischen robots.txt
442
+ * @return string $data Modifizierter Inhalt der robots.txt
443
+ */
444
+
445
+ public static function robots_txt($data)
446
+ {
447
+ /* HDD only */
448
+ if ( self::$options['use_apc'] !== 2 ) {
449
+ return $data;
450
+ }
451
+
452
+ /* Pfad */
453
+ $path = parse_url(site_url(), PHP_URL_PATH);
454
+
455
+ /* Ausgabe */
456
+ $data .= sprintf(
457
+ 'Disallow: %s/wp-content/cache/%s',
458
+ ( empty($path) ? '' : $path ),
459
+ "\n"
460
+ );
461
+
462
+ return $data;
463
+ }
464
+
465
+
466
  /**
467
  * Hinzufügen der Action-Links
468
  *
727
  );
728
  }
729
  }
730
+
731
+
732
+ /**
733
+ * Leerung des Cache bei neuen CPTs
734
  *
735
+ * @since 2.0.3
736
+ * @change 2.0.3
737
  *
738
+ * @param integer $id PostID
739
+ * @param object $post Object mit CPT-Metadaten [optional]
740
  */
741
 
742
+ public static function publish_cpt($id, $post = false)
743
  {
744
+ /* Leer? */
745
+ if ( empty($post) ) {
746
+ return;
 
 
 
747
  }
748
+
749
+ /* Status */
750
+ if ( in_array( $post->post_status, array('publish', 'future') ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
751
  self::flush_cache();
752
  }
753
  }
896
  $options = self::$options;
897
 
898
  /* Filter */
899
+ 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() ) {
900
+ return true;
901
+ }
902
+
903
+ /* Request */
904
+ if ( !empty($_POST) or (!empty($_GET) && get_option('permalink_structure')) ) {
905
  return true;
906
  }
907
 
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: sergej.mueller
3
  Tags: apc, cache, caching, performance
4
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5RDDW9FEHGLG6
5
  Requires at least: 3.1
6
- Tested up to: 3.4
7
  Stable tag: trunk
8
 
9
 
@@ -18,6 +18,7 @@ Turbo für WordPress. Smarte, aber effiziente Cache-Lösung für WordPress. Mit
18
  *Cachify* optimiert Ladezeit der Blogseiten, indem Seiteninhalte in statischer Form wahlweise in der Datenbank, auf der Festplatte des Webservers oder im APC (Alternative PHP Cache) abgelegt und beim Seitenaufruf ohne Umwege ausgegeben werden. Die Anzahl der DB-Anfragen und PHP-Anweisungen reduziert sich je nach Methode um Faktor 10.
19
 
20
  = Stärken =
 
21
  * Speicherungsmethoden: DB, HDD und APC
22
  * "Cache leeren" als Schaltfläche in der Admin Bar
23
  * Inline- und Online-Handbuch
@@ -49,6 +50,11 @@ Turbo für WordPress. Smarte, aber effiziente Cache-Lösung für WordPress. Mit
49
 
50
  == Changelog ==
51
 
 
 
 
 
 
52
  = 2.0.2 =
53
  * Unterstützung für WordPress 3.4
54
  * Hochauflösende Icons für iPad & Co.
3
  Tags: apc, cache, caching, performance
4
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5RDDW9FEHGLG6
5
  Requires at least: 3.1
6
+ Tested up to: 3.5
7
  Stable tag: trunk
8
 
9
 
18
  *Cachify* optimiert Ladezeit der Blogseiten, indem Seiteninhalte in statischer Form wahlweise in der Datenbank, auf der Festplatte des Webservers oder im APC (Alternative PHP Cache) abgelegt und beim Seitenaufruf ohne Umwege ausgegeben werden. Die Anzahl der DB-Anfragen und PHP-Anweisungen reduziert sich je nach Methode um Faktor 10.
19
 
20
  = Stärken =
21
+ * Zusammenarbeit mit Custom Post Types
22
  * Speicherungsmethoden: DB, HDD und APC
23
  * "Cache leeren" als Schaltfläche in der Admin Bar
24
  * Inline- und Online-Handbuch
50
 
51
  == Changelog ==
52
 
53
+ = 2.0.3 =
54
+ * Cache-Leerung beim Veröffentlichen verfügbarer Custom Post Types
55
+ * Noindex in der von WordPress generierten `robots.txt` für den Ordner mit HDD-Cache
56
+ * Hook `cachify_flush_cache` zum Leeren des Cache aus Drittanwendungen
57
+
58
  = 2.0.2 =
59
  * Unterstützung für WordPress 3.4
60
  * Hochauflösende Icons für iPad & Co.