The first argument should be either a string or an integerの意味
配列の指定変数は文字列又は数値である必要があります
考えられるエラーの原因
配列の要素の値を取り出すときは、指定位置が文字列又は、数字でないといけないのに何か別の値で取得しようとしたときにこのワーニングが出ます
例
$myarray=array(1,2,3,4,5);
$place=array(1,2);
echo $myarray[$place]; //配列の場所指定に配列を使用しているのでワーニングが出る
エラーの対処方法・修正方法
プラグインを更新する
このエラーは、contact form7で報告される事例が多いです。まずこのエラーがどこで発生しているか、ワーニングコードを見て確かめましょう。
例:/wp-content/plugins/contact-form-7/includes/capabilities.php
最新バージョンのプラグインではこのエラーが解消されているかもしれませんので、プラグインが古い場合は、プラグインを更新してみましょう
関数を書き換える
該当のプログラム部分を書き換えるという解決方法もあります。例えば、数字や数値だったら配列の値を代入するというプログラムは下記のようになります
修正前
if ( array_key_exists( $cap, $meta_caps ) )
$caps[] = $meta_caps[$cap];
修正後
if(is_string($cap) || is_numeric($cap)){
if ( array_key_exists( $cap, $meta_caps ) )
$caps[] = $meta_caps[$cap];
}