Cocoon 2.3.9公開。oneスキンの追加
いくつかの記事の冒頭にこのようなエラーが表示されるようになりました。
Warning: DOMDocument::loadHTML(): Empty string supplied as input in /public_html/wp-content/themes/cocoon-master /lib/open-graph.php on line 120
正解を先に言うと Cocoon ブログカードの不具合。
(なので、手っ取り早くブログカードをリンク形式に直すとエラーは消える)
内部ブログカードは問題なし。
問題があるのは外部ブログカード。
でも楽天や Amazon リンクは問題なし。
ちなみに1か月くらい前から表示が変になっていました。
ということは Cocoonバージョン 2.3.7 までは不具合はなかったかも。
open-graph.phpを差し替えてもダメ
エラーは open-graph.php の 120 行目
$doc->loadHTML($HTML);
しかし Github に書かれてある open-graph.php の 120 行目のコードは違っていました。
// mb_language("Japanese");
バックアップを取ってから最新の open-graph.php を上書きしてみたら、
ブログカードを設置しているページが壊れました。
このサイトで重大なエラーが発生しました
わー。
慌ててバックアップしてあった open-graph.php と置き換え。
もしかしたら全てのファイルを置き換えれば良いのかな…うーん…
PHP 8 にバージョンアップしてもダメ
サイト自体が壊れました。あはは。
エラー内容はブログカードのことばかり。
/wp-content/themes/cocoon-master/lib/blogcard-out.php(24): url_to_external_ogp_blogcard_tag('https://zbnrk.c...')
/wp-content/themes/cocoon-master/lib/blogcard-out.php(56): url_to_external_blog_card_tag('https://zbnrk.c...')
/wp-includes/class-wp-hook.php(303): url_to_external_blog_card('<p><a href="htt...')
また、Cocoon 設定画面も表示されず。仕方がないので PHP 7.4.25 にダウングレード。
open-graph.php の68行目のコードがポイント?
2.3.8で外部ブログカード取得エラー | 不具合報告 | Cocoon フォーラムによると、
open-graph.php の68行目のコードがポイントのようですが、
'Accept-Encoding' => 'gzip, deflate, br',
結局のところ、サーバーの特有のものかもしれないとのこと。
自分まとめ
エラーは良いのですがエラー内容にユーザー名が表示されるのが辛いです。
いつも表示させないようにしているのに。

他にも Cocoon 設定のブログカードキャッシュの更新を有効にしたりキャッシュを削除したり、色々とやってみましたがダメでした。
以前もブログカードでエラーになったことがありますし、「ブログカードは他のテーマに変更した時に表示されない場合がある」というデメリットもあるので、あまり使わない方が良い(リンク形式が良い)かも。
Cocoon 2.3.9公開。oneスキンの追加