WordPress/SNSCountCache
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
&tag(WordPress/SNSCountCache);
*目次 [#qbaa3fcc]
#contents
*関連ページ [#n44b1c2d]
*参考情報 [#ad061686]
-[[SNS Count Cache — WordPress プラグイン:https://ja.word...
*概要 [#jaafa3d6]
-はてなブックマークやTwitter、Facebookなどによる共有数を...
-日本人作者なのではてなブックマークに対応しているのが特徴。
*Tips [#vf6dfb8d]
**デバッグ方法 [#c9a41448]
-WordPressの設定で「WP_DEBUG」をtrueに設定すると、プラグ...
-メソッドの呼び出し順がわかるので、どこで時間がかかってい...
*トラブルシューティング [#y2dba47e]
**重すぎて有効化できない [#hff84551]
-WP_DEBUGをtrueにして確認してみたところclass-scc-share-se...
-さらにその内部の以下の部分で時間がかかっているので、そこ...
#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 => $a...
$meta_key = $this->get_cache_key( $sn...
if ( $active ) {
update_post_meta( $post_id, $meta...
}
}
}
}
}}
-update_post_metaで記事ごとに値を保存しているのでそこで時...
-とくに初期化しなくても実用上の問題はなさそう。
**設定が保存できない。設定を保存するとカウントがリセット...
-設定の保存はadmin-setting.phpのupdate_optionで実行される...
#pre{{
update_option( self::DB_SETTINGS, $settings );
$this->reactivate_plugin();
}}
-reactivate_plugin()でキャッシュのクリアが行われているの...
-キャッシュを消す処理が時間がかかるので(重すぎて有効化で...
**Facebookのカウントが取得できない [#i816db70]
-[[「SNS Count Cache 0.11.1」でFacebookのシェア数をカウン...
-class-scc-share-facebook-strategy.phpを修正する。
--build_query_urlの修正
$url = self::DEF_BASE_URL . '?id='. rawurlencode($this->...
--extract_countの修正。
#pre{{
if ( isset( $content['data'] ) && empty( $content...
$json = json_decode( $content['data'], true );
// if ( isset( $json['share']['share_count'] ) &...
// $count = (int) $json['share']['share_coun...
// } elseif ( isset( $json['id'] ) && ! isset( $...
// $count = (int) 0;
// } else {
// $count = (int) -1;
// }
$reaction = (int) $json['engagement']['reacti...
$comment_count = (int) $json['engagement']['c...
$share_count = (int) $json['engagement']['sha...
$count = $reaction + $comment_count + $share_...
} else {
$count = (int) -1;
}
}}
*考察 [#p16624e0]
**キャッシュの削除処理は? [#e2443aa5]
-WordPressのTransient APIを利用してキャッシュを削除してい...
-ソースコード中でset_transientしている箇所を探せばよい。
-例えばclass-sc-share-base-cache-engine.phpなどで、get_ca...
#pre{{
/**
* Get cache expiration based on current number of to...
*
* @since 0.1.1
*/
protected function get_cache_expiration() {
SCC_Common_Util::log( '[' . __METHOD__ . '] (line...
$posts_total = $this->get_posts_total();
SCC_Common_Util::log( '[' . __METHOD__ . '] posts...
return ceil( $posts_total / $this->posts_per_chec...
}
}}
終了行:
&tag(WordPress/SNSCountCache);
*目次 [#qbaa3fcc]
#contents
*関連ページ [#n44b1c2d]
*参考情報 [#ad061686]
-[[SNS Count Cache — WordPress プラグイン:https://ja.word...
*概要 [#jaafa3d6]
-はてなブックマークやTwitter、Facebookなどによる共有数を...
-日本人作者なのではてなブックマークに対応しているのが特徴。
*Tips [#vf6dfb8d]
**デバッグ方法 [#c9a41448]
-WordPressの設定で「WP_DEBUG」をtrueに設定すると、プラグ...
-メソッドの呼び出し順がわかるので、どこで時間がかかってい...
*トラブルシューティング [#y2dba47e]
**重すぎて有効化できない [#hff84551]
-WP_DEBUGをtrueにして確認してみたところclass-scc-share-se...
-さらにその内部の以下の部分で時間がかかっているので、そこ...
#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 => $a...
$meta_key = $this->get_cache_key( $sn...
if ( $active ) {
update_post_meta( $post_id, $meta...
}
}
}
}
}}
-update_post_metaで記事ごとに値を保存しているのでそこで時...
-とくに初期化しなくても実用上の問題はなさそう。
**設定が保存できない。設定を保存するとカウントがリセット...
-設定の保存はadmin-setting.phpのupdate_optionで実行される...
#pre{{
update_option( self::DB_SETTINGS, $settings );
$this->reactivate_plugin();
}}
-reactivate_plugin()でキャッシュのクリアが行われているの...
-キャッシュを消す処理が時間がかかるので(重すぎて有効化で...
**Facebookのカウントが取得できない [#i816db70]
-[[「SNS Count Cache 0.11.1」でFacebookのシェア数をカウン...
-class-scc-share-facebook-strategy.phpを修正する。
--build_query_urlの修正
$url = self::DEF_BASE_URL . '?id='. rawurlencode($this->...
--extract_countの修正。
#pre{{
if ( isset( $content['data'] ) && empty( $content...
$json = json_decode( $content['data'], true );
// if ( isset( $json['share']['share_count'] ) &...
// $count = (int) $json['share']['share_coun...
// } elseif ( isset( $json['id'] ) && ! isset( $...
// $count = (int) 0;
// } else {
// $count = (int) -1;
// }
$reaction = (int) $json['engagement']['reacti...
$comment_count = (int) $json['engagement']['c...
$share_count = (int) $json['engagement']['sha...
$count = $reaction + $comment_count + $share_...
} else {
$count = (int) -1;
}
}}
*考察 [#p16624e0]
**キャッシュの削除処理は? [#e2443aa5]
-WordPressのTransient APIを利用してキャッシュを削除してい...
-ソースコード中でset_transientしている箇所を探せばよい。
-例えばclass-sc-share-base-cache-engine.phpなどで、get_ca...
#pre{{
/**
* Get cache expiration based on current number of to...
*
* @since 0.1.1
*/
protected function get_cache_expiration() {
SCC_Common_Util::log( '[' . __METHOD__ . '] (line...
$posts_total = $this->get_posts_total();
SCC_Common_Util::log( '[' . __METHOD__ . '] posts...
return ceil( $posts_total / $this->posts_per_chec...
}
}}
ページ名: