ワードプレスの海外テーマ買ったら『Cannot use a scalar value as an array』が出たので対処方法(応急処置)を紹介!

2018年4月8日Wordpress(ワードプレス)

みなさんどうもワードプレス!海外テーマ大好きな@xi10jun1です。

ワードプレスのコミュニティサイト化プラグイン「BuddyPress」専用のテーマを海外サイトから買ったんですが、テーマをアップロードしたら速攻でエラーが出ました。

んもう!

Cannot use a scalar value as an array

今回買ったテーマに出てきたエラーはこちらです。

Cannot use a scalar value as an array ドメイン名/wp-content/themes/買ったテーマ名/lib/framework/page-builder/page-builder-custom-options.php on line 70

Cannot use a scalar value as an arrayを訳すと、『スカラー値をここに入れられないよ!』ってなるんですが、まぁチンプンカンプンです。

ググってみたところ、このような記述がありました。

上記のエラーは配列と同じ名前の変数を作ってしまっているときに出ます。

例えばこんなコードで再現できると思います。

<?php
$hoge=1;
$hoge[0]=1;  // <-- ここで PHP Warning: Cannot use a scalar value as an array in のはず
?>

引用元:PHPのエラーの対処法について – PHPプロ!Q&A掲示板※$は全角にしていますが、本来は半角です。

なるほどね。

ただ2007年の情報なので、なんとも・・・。

1年分で検索しても日本語の回答がなかったので、とりあえずいじってみました。

対処方法(応急処置)

というわけで、対処してみました。ちなみに応急処置的な方法なので、たぶんもっといい方法があるはずです。なおファイルをいじる際は、バックアップをしっかり取ってくださいね。

で、原因となっている個所にアクセスすると、このような記述になっていました。※ここでも$は全角にしていますが、本来は半角です。

編集前

$param['value’][esc_html__( 'GP Primary Color’, 'テーマ名’ )] = 'gp-primary-color’;

先ほどの引用の様子からするに、[]内がまるまる無駄っぽかったので、

編集後

$param = 'gp-primary-color’;

と、['value’][esc_html__( 'GP Primary Color’, 'テーマ名’ )]を消去してしまえばいけるんじゃね?って思って消したら、エラーがなくなりました。

まとめ:買ったテーマでもこういうことがあるよ!

本当はガッツリ原因を調べて正しい対処方法を施すべきなんですが、サイトの運営を優先したいので、今回は応急処置だけです。

そもそも、買ってすぐアップしてこのエラーでは困りますからね。テーマの販売元で修正アップデートとか出るまで待ちますか。

これが海外テーマのリスクか・・・。

[注目]どうしても分からないときはteratail(テラテイル)で質問してみよう!

どうしても分からないときは、プログラマーやエンジニア向けの質問サイト「teratail(テラテイル)」で同じ質問を探してみましょう。同じような質問があれば解決の糸口になりますし、なければ登録して質問することができます。

アクセスはこちら→エンジニアのためのQ&Aサイト teratail

~注目:M&Aマッチングサービス~

現在、景況感の悪化に伴い、M&Aマッチングサービスで事業やサービス、メディアを売却する動きが出ています。下記記事に詳細をまとめましたので、資金繰りの案としてご検討ください。

[2020年最新版]事業や資産の売却(資金繰り)に使えるM&A(事業継承)マッチングサービスまとめ

スポンサーリンク


※このメッセージは1年以上前の記事(当記事最初の更新は2018年4月8日)に出るものです。最新の情報と異なる可能性がありますので、公式サイトへアクセスするか別途お調べください。