Cocoonブログカードの不具合 エラー【Warning: DOMDocument::loadHTML()】



テーマCocoonのアップデートで直りました
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',

結局のところ、サーバーの特有のものかもしれないとのこと。

自分まとめ

エラーは良いのですがエラー内容にユーザー名が表示されるのが辛いです。
いつも表示させないようにしているのに。

WordPressユーザー名はnicenameを変更すると完璧に隠せる

他にも Cocoon 設定のブログカードキャッシュの更新を有効にしたりキャッシュを削除したり、色々とやってみましたがダメでした。

以前もブログカードでエラーになったことがありますし、「ブログカードは他のテーマに変更した時に表示されない場合がある」というデメリットもあるので、あまり使わない方が良い(リンク形式が良い)かも。

テーマCocoonのアップデートで直りました
Cocoon 2.3.9公開。oneスキンの追加