久しぶりに、といういかほぼ初めて、
Cocoonを使ってみようと思い、
試しに、インストール後、自動で作成されている投稿を編集してプレビューしたところ、
次のようなメッセージが表示されました💦
Fatal error: Uncaught TypeError: implode(): Argument #2 ($array) must be of type ?array, string given in C:\xampp2\htdocs\newWP\wp-content\themes\cocoon-master\lib\seo.php on line 391
今回はこの対応をします。
エラー内容を確認しよう
エラー内容を確認してみましょう。
エラー内容全文
いろいろと長く書いてありますね💦
まず1行目を見てみます。
Fatal error: Uncaught TypeError: implode(): Argument #2 ($array) must be of type ?array, string given in C:\xampp2\htdocs\newWP\wp-content\themes\cocoon-master\lib\seo.php on line 391
Uncaught TypeErrorで、
場所がseo.phpの391行目であることがわかります。
また、詳細も書いてありますね。
implode(): Argument #2 ($array) must be of type ?array
implodeという関数の2つ目の引数がarray配列になってないと言っていますね。
一番下の太字のメッセージも見ておきましょう。
C:\xampp2\htdocs\newWP\index.php(17): require(‘C:\\xampp2\\htdoc…’) #15 {main} thrown in C:\xampp2\htdocs\newWP\wp-content\themes\cocoon-master\lib\seo.php on line 391
同じ場所を指しています。
対応しよう
ATOMなどのテキストエディタで開いてみます。
該当のコードはこれ。
- $keywords = implode($category_names, ‘,’);
たしかに2つ目の引数が「,」になっており、
array配列にはなっていないですね。
念のため、ネットでも調べてみます。
エラー内容で検索して出てきたのがこちら↓
修正内容はこちら↓
エラー内容は同じではないものの、
TypeErrorであること、
私の環境のコードが修正前と同じであることからして、
ここが原因ですね。
では、下のコードに直して、ファイルを保存してみます。
- $keywords = implode(‘,’, $category_names);
再度エラー画面を読み込みすると…?
コードの意味を確認しておこう
今回の対象はimplode関数。
implode関数とは、
「配列要素を文字列により連結する」関数。
1つ目の引数が上記の「文字列」
2つ目の引数が「配列要素」で、連結したい文字列の配列。
つまり、2つ目に入っているいくつかの文字列を、
1つ目の文字列を入れながら連結させる。
もし、array配列に「1」、「2」、「3」が入っており、
区切り文字を「/」にした場合、
結果は「1/2/3」になるということですね。
1つ勉強になったにゃ!