WordPressをSSL化後 Facebookシェア数を復元 する方法

WordPressをSSL化後 Facebookシェア数を復元 する方法

今回は Facebookシェア数を復元 する方法について。

様々なサイトでSSL化(https://〜)が進んでいる中、URLに紐づくサービス、Facebookの「いいね!数」や「シェア数」などはカウントが”0″になってしまいます。プラグイン等でも解消出来ると思いますが、今回は諸事情のため、phpファイルにコードを追加します。

諸事情

今回は別な方が制作したオリジナルテーマへのカスタマイズ依頼頂いたため、プラグインはできるだけ使いたくありません。

header.phpやfunctions.phpで実行する方法が一般的だと思いますが、今回作業するテーマは、投稿についてはsingle.phpに直接ヘッダー部分も記述されていたため、
single.phpにコードを追加しました。

追加したコード

PHP

# "if(have_posts()):while (have_posts()):the_post(); など情報取得後に"
$nowid = get_the_ID();
$fbnow = get_permalink($nowid);
if( strtotime(get_the_date('Y-m-d')) < strtotime('2018-11-30') ){
    $fblink = str_replace( 'https://', 'http://', $fbnow );
} else {
    $fblink = $fbnow;
}

header、body修正前

<meta property="og:url" content="<?php echo get_permalink($nowid); ?>" />
.
.
.
<div class="fb-share-button" data-href="<?php echo get_permalink($nowid); ?>" data-layout="button_count" data-size="small" data-mobile-iframe="true">...

header、body修正後

<meta property="og:url" content="<?php echo $fblink; ?>" />
.
.
.
<div class="fb-share-button" data-href="<?php echo $fblink; ?>" data-layout="button_count" data-size="small" data-mobile-iframe="true">...

あわせて、 .htaccess で、httpsへの転送を記述している場合は以下のような形に修正します。

.htaccess修正前

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>

.htaccess修正後

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_USER_AGENT} !(facebook|Facebot)[NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>

functions.php で実装するには?

まずheader.php等で該当する箇所をコメントアウトします。(もちろん作業は子テーマで)

その後、fanctions.php に追記します。

functions.php

function fb_meta_ogp {
    global $post;
    $fbnow = get_permalink($nowid);
    if( strtotime(get_the_date('Y-m-d')) < strtotime('2018-11-30') && is_singular() ){
        $fblink = str_replace( 'https://', 'http://', $fbnow );
    } else {
        $fblink = $fbnow;
    }
    $insert = '<meta property="og:url" content="'.esc_url($fblink).'" />' . "\n";
    echo $insert;
}
add_action('wp_head','fb_meta_ogp');

テストしていませんが、多分こんな感じで大丈夫だと思います。

応援よろしくお願いします。
いいね ! してもらえると嬉しいです。

Twitter で

自己紹介

松田 大 と申しますm(_ _)m
インディーズでミュージシャンをやっていたのですがいつのまにか...

とある企業でショップのアルバイトスタッフから正社員、支店長を経てシステム部門に異動するという、開発担当としては変わった経緯を持っている方だと思います。

「Excel VBA」からスタートして、Yamaha RTX シリーズで VPN環境構築、Hyper-V環境構築、Windowsアプリ開発などを経験した後、「 WordPress 」に出会い、どっぷりハマっています(^_^)。

現在勤めているJTクラウドシステムでは、「 WordPress 」を活用したWEBサイト、業務用WEBアプリケーション開発を中心に、記事の執筆代行や掲載に必要な情報のリサーチ、映像のテロップ入れや切りはりなどの簡単な動画編集なども、まとめて行なっています。

現在、代表取締役兼二児のパパ。社畜ながらイクメン目指して、公私ともに慌ただしくしています(笑)

お問い合わせはJTクラウドシステムホームページからお願いします。