#author("2018-01-23T15:00:37+09:00","default:wikiwriter","wikiwriter")
&tag(WordPress/SNSCountCache);
*目次 [#qbaa3fcc]
#contents
*関連ページ [#n44b1c2d]
*参考情報 [#ad061686]
-[[SNS Count Cache — WordPress プラグイン:https://ja.wordpress.org/plugins/sns-count-cache/]]

*概要 [#jaafa3d6]
-はてなブックマークやTwitter、Facebookなどによる共有数を表示するためのプラグイン。
-日本人作者なのではてなブックマークに対応しているのが特徴。


*Tips [#vf6dfb8d]

**デバッグ方法 [#c9a41448]
-WordPressの設定で「WP_DEBUG」をtrueに設定すると、プラグイン内部のSCC_Common_Util::logによるログが書き出されるようになる。
-メソッドの呼び出し順がわかるので、どこで時間がかかっているのかdebug.logをtailしながら確認すると良い。

*トラブルシューティング [#y2dba47e]

**重すぎて有効化できない [#hff84551]
-WP_DEBUGをtrueにして確認してみたところclass-scc-share-second-cache-engine.phpのinitialize_cache()で時間がかかっていた。
-さらにその内部の以下の部分で時間がかかっているので、そこをコメントアウトすると良い。
#pre{{
        if ( $posts_query->have_posts() ) {
            while ( $posts_query->have_posts() ) {
                $posts_query->the_post();

                $post_id = get_the_ID();

                foreach ( $this->target_sns as $sns => $active ) {
                    $meta_key = $this->get_cache_key( $sns );

                    if ( $active ) {
                        update_post_meta( $post_id, $meta_key, (int) -1 );
                    }
                }
            }
        }
}}
-update_post_metaで記事ごとに値を保存しているのでそこで時間がかかっている模様。
-とくに初期化しなくても実用上の問題はなさそう。

**設定が保存できない。設定を保存するとカウントがリセットされる。 [#b91eb3ef]
-設定の保存はadmin-setting.phpのupdate_optionで実行される。そのあとに以下のような記述がある。
#pre{{
            update_option( self::DB_SETTINGS, $settings );

            $this->reactivate_plugin();
}}
-reactivate_plugin()でキャッシュのクリアが行われているので、カウント値が消えるのは仕様といえる。
-キャッシュを消す処理が時間がかかるので(重すぎて有効化できないを参考)、update_post_metaの処理を消しておかないとメモリを消費しすぎたり、時間がかかりすぎたりということになる。



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS