ホーム › フォーラム › お問い合わせ・ブログや記事に関する質問など › facebookシェア数の取得につきまして
-
投稿者投稿
-
ひつじゲスト
はじめまして。
wordpressを使ってサイトを運営している者です。この度facebookのシェア数を取得しようとしたところ上手くいかず、調べてもわからず、困り果ててこのような形で質問させていただいてしまいました。
もしよろしければ、ご教示いただけますと幸いです。今回、運営サイトのfacebookのシェア数を取得したく、Simplicity2のソースを参考にさせていただきました。
まず、現状どの様な状態になっているかと言いますと、
シェア数の取得が出来ていないのと、http://graph.facebook.com/?id=http://○○○○○○○
とページを指定して表示させると、
{
“id”: “http://○○○○○○○”
}と反ってきます。
通常であれば、{
“og_object”: {
“id”: “○○○○○○○○○”,
“description”: “○○○○○○○○○”,
“title”: “○○○○○○○○○”,
“type”: “article”,
“updated_time”: “2016-08-25T01:07:41+0000”
},
“share”: {
“comment_count”: 0,
“share_count”: 5
},
“id”: “http://○○○○○○○”
}このように反ってくると思うのですが、データを取得出来なくなる理由としては、何が考えられますでしょうか?
(取得できなくなったのか、無くなった?のか?状況が全く分かりません。)ソースコードを修正した部分は、以下になります。
・simplicity2/javascript.js を手を加えずにそのままテーマフォルダに入れる
・lib/sns.php , lib/seo.php をテーマフォルダに入れる
/*********<lib/sns.php 修正箇所>**********/
//Facebookシェア数を取得する
if ( !function_exists( ‘fetch_facebook_count’ ) ):
function fetch_facebook_count($url) {
//URLをURLエンコード
$encoded_url = rawurlencode( $url );
//オプションの設定
//$args = array( ‘sslverify’ => is_ssl_verification_enable() );
//Facebookにリクエストを送る
$response = wp_remote_get( ‘http://graph.facebook.com/?id=’.$encoded_url/*, $args*/ );
$res = 0;上記の
//$args = array( ‘sslverify’ => is_ssl_verification_enable() );
ここと
//Facebookにリクエストを送る
$response = wp_remote_get( ‘http://graph.facebook.com/?id=’.$encoded_url/*, $args*/ )の、$argsをコメントアウト
/***************************************//*********<lib/seo.php 修正箇所>**********/
if ( is_rel_next_prev_link_enable() ) {
//分割ページのみnext/prevを表示
add_action( ‘wp_head’, ‘rel_next_prevlink_tags’ );
}
この部分全てをコメントアウト
/***************************************/・functions.php に下記を追記
/***************************************/
////// SNSボタン表示
include ‘lib/sns.php’;
function sns_box() {
ob_start();
include(get_theme_root() . ‘/’ . get_template() . “/item-social-btn.php”);
return ob_get_clean();
}
add_shortcode(‘sns_box’, ‘sns_box’);
/***************************************/・item-social-btn.php を追加
/***************************************/
/*facebookシェア数部分は以下*/
<span class=”social-count facebook-count”><?php echo fetch_facebook_count(get_permalink());//echo scc_get_share_facebook(); ?></span>
/***************************************/・single.php に下記を追記
/***************************************/
<?php echo do_shortcode(‘[sns_box]’); ?>
/***************************************/修正箇所は以上です。
シェア数も取得できませんでしたし、JSONデータの様子もおかしくなってしまいました…数サイトの運営をしており、その中の数サイトでsimplicity2を使わせてもらっており、
ほかのテーマのサイトにて、facebookのシェア数の取得をsimplicity2を参考にさせていただきました。拙い文章にて大変失礼いたします。
足りない情報などありましたらお知らせください。
もしご返信いただけました場合、申し訳ございませんが拝見させていただくのは月曜日になります。お忙しいところ大変恐縮です。
何卒よろしくお願いいたします。ひつじゲスト金曜日に投稿したものです。
すみません、facebookの場合、カウント数が0の場合、shareとcommentsのプロパティが存在しないという事を知りませんでした。
シェアしたにも関わらずカウントされていないのでどうしたのかと思っておりましたが、先ほど問題なくJSONデータ上でカウントされておりました。
また、Simplicity2のソースを、自分のサイトに不要な部分まで入れていたので書き換えました。こちらを参考にさせていただき、問題なく表示がされました。
http://nelog.jp/fetch-facebook-countすみません、どうもありがとうございました。
わいひらキーマスターすいません。ここ最近体調が優れず、返信が遅れました。
Facebookは、ここ暫くの間に何度か仕様変更しているようです。
それについては、以前のトピックにも書いています。
Facebook8月仕様変更の件それで、その仕様変更に対応した書き方に修正したものが以下の記事です。
http://nelog.jp/fetch-facebook-countSimplicityも、最新版のものは上記記事と同時期に、同様に修正してあります。
-
投稿者投稿