- モリヤ
総記事本数:11
こんにちは
開発部のモリヤです。
WPの記事を公開する際に様々なSNS媒体と連携しておけば拡散しやすくなるというのは皆さんもご存知と思われますが、先日ちょっとハマったので記事にします。
※ハッキリ言って技術的な問題ではないです。
今回は投稿した記事をtwitterで連携したいと思い、プラグインとしてはメジャーな「Jetpack by WordPress.com」を使用しました。
インストールから設定までは下記の解説サイトを参考にしました。
JetpackでWordPressとSNSを連携!FacebookやTwitterに自動投稿する方法
Twitterとの連携設定を完了し、さっそく記事を公開し連携テストを行ってみると・・・
・・・あれ?アイキャッチ画像が表示されないぞ??
試しに公開した記事を「Card validator」にかけてみると、
うーむ、twitterカードがないと怒られてしまった
Chromeのデベロッパーツールで確認しても、確かにTwitterカード表示に必要となる「twitter:card」や「twitter:image」のmetaタグが表示されませんでした。
Twitterカードに関連するタグが表示されない問題について、他のブログさんの記事を色々と読み漁りましたが、どの解説もJetpackでの設定が完了した時点で特に何かをするわけでもなく表示されているようで一向に原因の特定ができませんでした。
プラグインが動かない原因で定番なのは、他にインストールしているプラグインとの競合になりますが、関連しそうなプラグインの停止や、「Jetpack by WordPress.com」の再インストールなどを試しましたが今回のケースでは改善につながりませんでした。
今回の環境では、独自のテーマを作成・有効化していることが分かったので、試しにWordPress標準のテーマである「twenty seventeen」に変えてみたところ・・・
表示された!
ということはプラグインがうまく動作しない原因は独自テーマと標準テーマに何かしらの差分があるということになります。
それからテーマ毎の差分をとり、悪さをしてそうなところを特定していったところ、
「・・あれ?header.phpに『wp_head();』がいない!」と、ついに原因の特定に成功したのであります。
この「wp_head();」とはWordPressに必要なメタ情報、JQUERYのインストールなどを行ってくれる処理で、記述を忘れるだけで多数のプラグインが動作しなくなるという超重要な関数となります。
何故こんな重要な処理が抜けているんだろう・・・
独自テーマ作成を行う際は、こういった重要な関数の記述漏れがないことを確認するのが大事ですね。
また、プラグインが期待通りの動きをしない場合、独自テーマを使用している環境なら「あって当たり前の記述がない可能性」というのも疑ってみると、問題解決につながるかもしれませんね。
コメントをどうぞ