9/8 ブログカード

他のブログのリンクを張り付けた際にテキストリンクではなくFBやXを貼ったときのようにサマリーが表示されるようにするためにはどうしたらよいのかGemniに聞いてみた。

まず、あのサマリーや画像付きのリンクはブログカードというそうだ。
仕組みとしてはOGPを読み込んでサマリーや画像を表示しているのだそう。
OGP自体は使っているからわかるが、ニュースサイトならそれくらい設定されていそうなのにそれらのURLを貼っても表示されないのでさらに聞いてみた。

するとまず最初にEmbedPressというプラグインを勧められた。
インストールして有効化し、WordPressのエディタでURLを貼り付けたけど「このコンテンツを埋め込めませんでした」と今までと同じ。

どうしたらいいか聞いてみると、

このコンテンツを埋め込めませんでした」というエラーが表示される主な原因は、EmbedPressが対応していないURLを貼り付けたためです。

とのこと。
どうもYoutubeやFacebook、Xなどリストに載っている特定のサービス以外の一般的なブログには対応していないらしい。
これはそれらのサービスが埋め込み可能なコード(oEmbed)に対応しているのに対して一般的なブログはそうでない(なら参照先はどう作りこんだらいい?)のでOGP情報を元にブログカードを生成できるプラグインが必要だそう。

次に紹介されたのがRich Link PostBlog Cardというプラグイン。
ところがRich Link Postというプラグインは、指定された方法に従ったのにプラグインの検索結果に出てこない。
それをGeminiに投げてみると、長いことバージョンアップされていなかったため(!)にWordPress.orgの公式プラグインリポジトリから削除されたので検索結果に出てこなかったとのこと。

もういっぽうのBlog Cardはプラグイン検索で見つかったが、ブログカードのエリアのブロック設定でURLを入力して保存しプレビューすると外部リンクを表示すべきところに白いブロックが表示された。
それを告げるとFacebookのSharing DebuggerでURLを入力してみてくれということでやってみるとそちらではちゃんと内容が表示された。

すると、

問題はあなたのWordPressサイト側にあると見て間違いありません。
主な原因は、WordPressが外部サイトのOGP情報を取得する通信が何らかの理由でブロックされていることです。
以下のステップを順に試してみてください。

  1. キャッシュをクリアする(プラグインでキャッシュ機能を入れている場合)
  2. サーバー側の設定を確認する
  3. Pz-LinkCardを試してみる

とのこと。
キャッシュのためのプラグインは使っておらず、サーバーはいじれないのでGeminiが「強くお勧め」していたこのPz-LinkCardに期待をかける。
しかし、、やはり「このコンテンツを埋め込めませんでした」が表示される、ブロック間の+をクリックしてもこのプラグインは出てこない。

もうこれでお手上げか、とプラグインの検索を見ていたらWordPressにsimple blog cardというプラグインがリコメンドされていたのでそれをインストールし有効化して使ってみたら、プラグイン5つ目にしてやっとブログカードが表示されるようになった。

最終的にGeminiにそれを報告したら

Pz-LinkCardが機能しなかった理由

  1. Gutenbergエディタ(ブロックエディタ)との相性
  2. 特定のサーバー環境との相性
    プラグインがOGP情報を取得する方法はそれぞれ異なります。Pz-LinkCardが使用する通信方法が、サーバー環境のセキュリティ設定(WAFなど)にブロックされていた可能性があります。

解決できた理由

Simple Blog Cardは、Pz-LinkCardとは異なる方法でOGP情報を取得していると考えられます。その通信方法があなたのサーバー環境に適合していたため、無事に機能したのでしょう。

今回の件で、問題の原因は外部サイトのOGP情報でも、あなたのWordPressサイトの環境でもなく、プラグインとWordPress環境の相性であったことが明確になりました。

だそうだ。
こういうロジカルなところがGeminiの好きなところ。
最後までよく付き合ってくれた。

↑こういうやつ

にほんブログ村 旅行ブログへ

8/25 WordPressの更新

気が付いた人もいるかもしれないけどこのブログで使っているWordPressのバージョンを5.8.1からようやく6.8.2にアップした。
その時の備忘録。

管理ページを開けるたびに「アップデートをしろ」としつこく表示され続けていたのもあるが、iPhoneで日付を検索して表示されるとタイトルのフォントサイズがおかしくなるという現象があったので重い腰を上げて作業を行ってみた。

まずデータのバックアップ。
たしか前回行ったのは3年くらい前。
その時どうやったのか覚えておらずググって出てきたphpMyAdminを入れてみたがどうも違っていたのでさらに調べたらWordPressにbackWPupというプラグインが入っているのを発見。
それの使いかたを調べ最新版にアップしたのちにそのツールを使ってみた。
サーバー上でtarあるいはzip化まではすんなりできたのだがそのままその管理ページからダウンロードしようとするとchromeに阻止され、Firefoxではどうかと試してみたらそちらも接続が切られてしまった。
それならとバックアップファイルのあるディレクトリーを探し出してftpツールでやっとローカルにバックアップ。

そしていよいよWordPressのバージョンアップ。
公式サイトからダウンロードしてきたzipファイルをPC上で解凍の後にftpを使ってサーバーにコピー。
ここまではすんなりいったのでついでにテーマをTwenty ElevenからTwenty Sixteenに変更。(見た目が変わったのはこのため)

これで今までの投稿が見れるようになったが、Facebookの引用部分が

このFacebook投稿は利用できません。削除されたか、プライバシー設定が変更された可能性があります。

とエラーとなってしまった。
原因はFacebook側のAPIが変更になっていたこと。
それでもWordPressが古い状態なら古いAPIを使えていたようだがそちらをアップデートしたために使えなくなった模様。
これでひとまず一日目終了。

そして翌日。

Facebookのリンクが表示されない件についてGemniに相談しながら進める。
この問題を解決するためにWordPressにSmash BalloonのFacebook Feedというプラグインがあるようなのでそれを導入。
Facebookのアクセストークンとやらが必要だそうでまずはMeta for Developersに登録すると開発するアプリ名を登録するように言われる。
アプリの開発なんてするつもりはなくただ単にWordPressから参照したいだけなのだが必要らしいので適当に名前を付ける。

そしてGraph API Explorerからアクセストークンを取得し、Facebook Feedに設定するのだが、この後がよくわからなかった。
Facebook Feedでタイムライン、写真、動画、アルバムなどのフィード形式のうちタイムラインを指定、次の『フィードを作成』で『新規追加』でConnect to FacebookでFaceに接続。
次に進んで『Facebookページを選択する』ウィンドウが出るので『追加』を選択するが何も変化しない。
また『Facebookフィードを作成』から始めるが何度やっても同じ。
それならばとAdd Account ManuallyでFacebook IDとアクセストークンを入力するがこれが

There was a problem connecting this account. Please make sure your access token and ID are correct.

となり受け付けてくれない。

さらにGeminiと細かくやり取り。
この何も変化しないのは投稿されたFacebook記事が公開されているかどうかということだったがリンク先はニュースサイトの記事なので当然公開されている。
アクセストークンが正しくない可能性もあるとのことで何度か試すも症状は変わらず。
勧めに従ってブラウザのキャッシュのクリアやWindowsの再ログインなども試すが結果は変わらず。
Facebook Feedの設定メニューから『ソースを管理』になにも出ないのでそれを聞いてみたら『プラグインがFacebookアカウントとの接続をまだ完全に確立できていない』とのこと。
なので一晩寝かせて熟成。

するとあら不思議。
昨晩あれほど悪戦苦闘していたのにフィードにすんなりリンクが表示されていた。
Facebook側なのかFacebook Feed側の問題なのかはわからないがどうやら処理に時間がかかっていたようだった。
仕事より頭を使ったよ。
5年と言わず3年後ですら同じことができる自信はない。

PHPを更新しろとも出てるけどそっちは後回し。一度やったことあるけどこれも面倒くさかった印象。
というわけで結構大変なわけだが他の人たちはどうしてるんだろうか。
自分でWordPressを入れたりせずブログサービスを使ってるのかね。

にほんブログ村 旅行ブログへ