旅馬の舞台裏

記事の前になにやらエラーメッセージが表示されたで【解決済み】

Amazonアフィリエイトに無事登録でき、調子に乗ってアフィリエイトリンクをペタペタ貼っていた時のことです。

気が付くとリンクを貼った記事の前に、なにやら見知らぬ英文が表示されているではありませんか。

Warning: count(): Parameter must be an array or an object that implements Countable in /home/サーバーのディレクトリが表示されます/shortcodes-amazon.php on line 745

PHPエラーが表示された画面のスクリーンショット

Amazonショートコードが原因か?

shortcodes-amazon.php on line 745というamazonショートコードに原因があるようなメッセージですし、アフィリエイトリンクを削除するとエラーメッセージは消えることから、どうやらアフィリエイトリンクが原因のようです。

しかし、これからアフィリエイトを始めようとしているのに、アフィリエイトリンクを削除するなんて考えられません。

まったく解決策がつかめなかったのですが、とりあえずエラーメッセージ「Warning: count(): Parameter must be an array or an object that implements Countable in」でググってみました。

和休、PHPには明るくないのですが、どうやらPHPのバージョンが7.1から7.2へバージョンアップした際、関数の扱いが変更されたことにより生じたエラーだということが分かりました。

作者のわいひら氏へ問い合わせようか…

ほんじゃどないすんねん、というところですが、恐らくテーマ側で対応するべき案件なので、作者であるわいひら氏に問い合わせる必要があるようです。

かといって、わいひら氏は一人でCocoonの開発をされており、神様ではありませんので、末端ユーザーの問い合わせにすべて対応するのは、とても困難です。

でも大丈夫。

Cocoonには、フォーラムが設置されていて、今回のような不具合が生じたりカスタムの相談に対し、わいひら氏や、めっちゃ詳しいCocoonユーザー氏が回答してくれるというありがたい仕組みがあります。

まさに、神ですね。

wp-cocoon.com

解決方法が見つかった!

ワラにもすがる思いでフォーラムを除くと、あっさりと解決方法が見つかりました。

wp-cocoon.com

手順に沿って、わいひら氏が修正してくださったファイルを適用させます。

まず、GitHubのサイトから、Cocoonのファイルをダウンロードします。

github.com

GitHubの画面

画面中央の右端にある「clone or downlord」と表示のあるボタンをクリックし、Zip圧縮した「cocoon-master.zip」ファイルをダウンロードします。

ダウンロードできたら解凍(展開)します。和休の場合、解凍したフォルダは9.3MBのサイズになりました。

こちらのリンクにある通り、「cocoon-master」フォルダをFTPツールを使用して、自分のサーバー上にある「cocoon-master」フォルダめがけ上書きアップロードして差し替えます。

wp-cocoon.com

和休は、「FileZilla」というFTPツールを使用しています。

ja.osdn.net

修正できたか?

アップロードし終えたら、エラーメッセージが表示された記事を表示してみましょう。

PHPエラーが表示された画面のスクリーンショット

なんと、相変わらずエラーメッセージが表示されているではありませんか!

こんなとき、「キャッシュ」という仕組みが影響していないかチェックしましょう。

キャッシュとは、インターネットエクスプローラーやエッジ、クローム、ファイヤフォックスといったインターネットを閲覧するソフト(ブラウザといいます。)は、サーバーから記事のページをダウンロードするとき、毎回記事のページを構成するすべてのデータをダウンロードするわけではありません。

初めてダウンロードしたページ内のデータ(例えば画像のデータ)は、パソコンの特別な場所に保存されます。2回目以降に同じページをダウンロードしたとき、画像データは前回のダウンロードの時にパソコンの中に保存した画像を使います。

この、パソコンに中に保存しているデータのことを、「キャッシュ」といいます。

キャッシュを使うことで、2回目以降は1回目に比べると高速でページが表示される、というわけなんですが、今回のように不具合が解消されたか調べたいときは、仇になってしまうのです。

スーパーリロード

そこで、「スーパーリロード」という仕組みを使って、ページをリロード(更新・再読み込み)してみましょう。

スーパーリロードとは、Ctrlキーを押しながらF5キーを押す(又は再読み込みのボタンをクリックする)ことで、ページを構成するすべてのデータをサーバーからダウンロードします。

リフレッシュした状態で、ページが表示されるわけですね。

では、

すぅーぱぁーりろぉぉぉぉぉぉーどっっ!!!

※ボーン・片桐氏風

しゅぉぉぉぉぉぉぉっっ!

PHPのエラーが解消した画面のスクリーンショット

ハイ!見事にエラーメッセージが消えました!

同様の事象でお困りのCocoonユーザーさん、和休の場合、こんな方法で治りましたよ。試してみてください。

(b^ー°)