2017-11-25 11 views
0

私はWordPressのユーザーデータを扱っていますが、このエラーは一般的なPHPの問題であると私は思っています。警告:array_keys()は、配列が適切に形成されているものの、パラメータ1が配列、nullが指定されていると想定していますか?

display_nameのような特定のユーザーフィールドに対応するキーと値の配列をとる関数wp_update_user()を使用します。次のように

コード責任ルックス(私はデバッグ目的のためdisplay_nameの値をハードコーディングしていますことに注意してください):

$returnValue = wp_update_user(array('ID' => $user->ID, 'display_name' => 'Test 123')); 
    if (is_wp_error($returnValue)) { 
     print_r($returnValue); 
    } else { 
     echo "User update was a success, ID returned is " . $returnValue; 
    } 

if文を出力し、エラーがあればエラーオブジェクトならば。ただし、期待どおりデータベースの値が更新されており、WPからエラーが返されません。しかし、サーバーは私に一連の警告を出しています。これはWarning: array_keys() expects parameter 1 to be array, null given in /srv/www/mysite.com/current/web/wp/wp-includes/user.php on line 1993で始まります。私は関数array_keys()を調べましたが、私が知る限り、必要に応じて正しく形成された配列を渡しています。この警告は、wp_update_user()機能に由来します。

上記のとおり、実際のコードは機能していると思われますが、この警告は実際には機能を妨げるものではありません。私はこの警告出力を隠すことができますが、ベストプラクティスのために、私はその警告出力の下に行きたいと考えています。これをどうすれば解決できますか?

+0

のIDとして通常の整数であることを呼び出すことが警告しているかなり確信しては?wp_update_user機能からしてくださいトリガ残りのエラーメッセージを表示します。 '...'コードはうまくいきません。 –

+0

@LawrenceCheroneはい、その関数からトリガーされます。ただ私のポストを更新しました。 – AKor

+0

投稿したコードに 'array_keys()'を呼び出すことはありません。エラーを引き起こすコードを投稿に追加します。 – axiac

答えて

0

そのないあなたはそれが間違って渡したパラメータが、内部WP process.Tryすでに既存のユーザー

+0

私はそれを試みました - 同じ正確な動作(機能は期待どおり機能しますが、私はまだ同じ警告が表示されます)。 – AKor

+0

Meh、次に私はあなたが次のことを行うことができると思います。xdebugとinseetブレークポイントをインストールするか、wp includes.Orのエラー行でエコーを行います。エラーを抑制する関数に@を挿入してmuahahを忘れないでください – rexxar2

+0

何かに気づいた。ユーザーIDを引用符で渡すと、ユーザーIDが正しく更新されます。この関数に関するドキュメンテーションの例に示すように、単純な整数として渡すと、ユーザーは更新されません。それがこの問題と関連しているかどうかはわかりませんが、今は唯一の真のリードです。 – AKor