WordPress を 3.4 に更新したら MO Cache が効かなくなったのでなんとかしてみた

以下の問題はプラグインの新バージョンにて解決されています。

WordPress 3.4 からは言語ファイルが分割され、従来の ja.mo に加え、admin-ja.mo やら admin-network-ja.mo やら continents-cities-ja.mo やらが加わっています。

分割することでファイルサイズを抑え、読み込み時のオーバーヘッドを減らす目的でしょうけれど、先日導入した Mo Cache は .mo ファイルを1個に絞ってキャッシュしていたようなので、無理矢理全部のファイルの中身をキャッシュするようにしてみました。

パッチ

怪しい部分は以下の所なので、ちょっといじってみました。

.mo にマッチしたファイルのリストを1個ずつ foreach で回してやってるだけですが。

$ diff -cw mo-cache_bak.phps mo-cache.php 
*** mo-cache_bak.phps   2012-06-14 18:33:04.871131065 +0900
--- mo-cache.php        2012-06-14 18:36:00.921145924 +0900
***************
*** 37,43 ****
                if ( isset( $this->hit[$domain] ) ) return true;
  
                if ( ! preg_match( '/\w+(?=\.mo$)/', $mofile, $matches ) ) return;
!               $key = "$domain:$matches[0]";
  
                if ( function_exists( 'wp_cache_add_global_groups' ) ) {
                        wp_cache_add_global_groups( self::GROUP );
--- 37,44 ----
                if ( isset( $this->hit[$domain] ) ) return true;
  
                if ( ! preg_match( '/\w+(?=\.mo$)/', $mofile, $matches ) ) return;
!               foreach( $match as $matches ) {
!                       $key = "$domain:$match";
  
                        if ( function_exists( 'wp_cache_add_global_groups' ) ) {
                                wp_cache_add_global_groups( self::GROUP );
***************
*** 62,67 ****
--- 63,69 ----
                                return false;
                        }
                }
+       }
  
        /**
         * Store MO object in cache

効果は?

確かに MO Cache を有効にして言語ファイルが適用されるようになりました。

が、思いつきで改造してみただけなので、有効かどうかはちょっと自信がないです(;´∀`)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次