Jetpackを使ってFacebookに自動投稿すると記事の文章全文が表示される事件を解決したお話【WordPress】




こんにちは、プロクラスの中山です!

人気のWordPress講座はコロナウイルス感染症対策のためにオンライン講座でも開催しており、最近は関東や東北地方の方々にも受講いただいております!
オンラインって便利ですね。全国どこからでも、受講お待ちしております♪

そんなこんなでたくさんの方が利用している「WordPress」。
せっかく情報を発信するのだから、SNSでもっと情報を拡散したいという方がたくさんおられます。

「でも、記事を投稿するたびに毎回FacebookやTwitterにもアップしないといけないのは面倒だよね…」と考える方も多いと思います。そんな時は「SNS自動投稿」を使ってしまうのが一番手っ取り早いですね!!

2021.01.05 追記
記事の中でご紹介しているプラグインをご自身で設置できるように、ダウンロードページを追加いたしました。

JetpackでFacebookとTwitterに記事を投稿しよう

この方法は調べると結構出てきますので、本日の本題ではありません。

WordPressの投稿はプラグインを使って様々なSNSと連携することが可能です。
Facebookと連携することができるプラグインはJetpack以外にもあるのですが、「APIキーを取得して〜」など面倒なので今回は説明を省きます。

バージョンによってJetpackの画面の見た目は異なると思いますが、Wordpress.comのアカウントを取ったりJetpackの初期設定を済ますと下記のような「共有」というメニューから自分のSNSアカウントを接続することが可能です。
これがちゃんと完了すれば、投稿は自動的にFacebookやTwitter、その他のSNSと「パブリサイズ共有」することができます。(つまり自動投稿してくれる)

Facebookに投稿すると、記事の全文が表示されてしまう

さぁ、無事に投稿が連携できたかな?と意気揚々とFacebookをのぞいてみると、なんじゃこりゃ!文章がだらだらと全文表示されてしまっています。しかも改行がなくてとても読みにくい地獄…

解決方法を調べてみたのですが、「毎回Facebookに投稿する文章を編集する」とか「自動投稿したあとにFacebookの編集画面で文章を整える」とか「そもそもFacebookに自動投稿するのは諦める」とか…
確かに解決はするけどそうじゃなくて、放っておいてもちゃんといい感じに投稿してくれる方法を調べたいのに!!

ちなみに、なぜかTwitterは普通に不具合なくコンパクトに投稿できるんですよね。

投稿内容を修正するプラグインをアップしよう

Jetpackだけではどうにもならない、ということのようなのでめちゃくちゃ調べました。
その中で、「自分でプラグインを作ってなんとかする」という方法を取っているブログを見ながら一つのファイルを作成しました。
参考サイト:Jetpack for WordPressのパブリサイズ共有を色々カスタマイズしてみた

<?php
/*
Plugin Name: Facebook自動投稿不具合修正プラグイン
Plugin URI: http://proclass.jp/
Description: jetpackでfacebookと投稿自動連携した際の不具合解消のためのプラグインです。
Version: 0.1
Author: プロクラス 
Author URI: http://proclass.jp/
License: GPL2
*/

/** パブリサイズ共有の文言を変更 */
function change_jetpack_publicize_content( $post_id, $post )
{
$POST_MESS = '_wpas_mess';

/** 投稿,下書き,スケジュール待ちのみ */
if ( !in_array( $post->post_status, array( 'publish', 'future' ) ) ) {
return;
}

/** カスタムメッセージのPOSTがあったら無視 */
if ( !empty( $_POST['wpas_title'] ) ) {
return;
}

/** カスタムメッセージがある場合は無視 */
if( get_post_meta( $post_id, $POST_MESS, TRUE ) ) {
return;
}

/** 共有する文言の成形 */
$publicize_custom_message = sprintf( '新しいブログを投稿しました!『%s』%s', $post->post_title, wp_get_shortlink( $post->ID ) );

/** カスタムメッセージとして登録 */
update_post_meta( $post_id, $POST_MESS, $publicize_custom_message );

/** postmetaが削除されないように$_POSTにも代入 */
$_POST['wpas_title'] = $publicize_custom_message;
}
/** JetPackのパブリサイズ共有のsave_postに対する処理の優先度は「20」 */
add_action( 'save_post', 'change_jetpack_publicize_content', 19, 2 );
?>

このファイルをダウンロードしていただき、プラグインにアップロードしていただくとちゃんと投稿ができるはずです!

「新しいブログを投稿しました!」の部分などは自由に打ち替えていただくといいかと思います。
『%s』の部分には投稿した記事のタイトルが入ります。

修正プラグインファイルをダウンロードして設置しよう!

2021.01.05 追記
ご自身で上記のプログラムをphpファイルにしてプラグインとしてアップしていただくか、もしくは下記の方法でダウンロード・プラグイン設置を行なってください。

JetpackのFacebook表示修正プラグインをダウンロードして設置しよう!

そして完成したのがこちら!

もちろん、Twitterの方も無事に共有できておりました。

ちょっと調べただけではなかなか解決方法が見つからないこともありますが、無事にFacebook連携の不具合を解消することができました。
同じようにお困りの方はぜひお試しください。

その他、ホームページの更新などでお困りのことがあればお気軽にプロクラスまでお問い合わせください 🙂