WordPress 2.9/3.0でflexible uploadを使った時のエラー

WordPress 2.9/3.0でflexible uploadってプラグインを使った時にエラーがでますよね・・
Warning: Invalid argument supplied for foreach() in wp-admin/includes/image.php on line 124
ってやつです。

自分は警告が出るだけでアップロードも何もかもちゃんと動いていたので無視していたのですが、
友人が使って「これ表示しないようにできない?」と言われて解決に取りかかることに。

エラーの内容はからするにforeach()の引数がおかしいと。
調べてみると「foreach()への引数は配列でないといけない」との事。

とりあえずデバッグしてみる。
foreach()の引数である$sizesに配列どころかなにも入ってない。

なのでforeach()が実行される前に引数である$sizesが配列かどうかチェックしてやればいいんじゃない(・∀・)
・・・・
・・・・・・・・・・・・・
・・
チェックすると言ってもin_arrayで配列かどうかのチェックだけだけれど、この方法だとimage.phpを修正するほか考えが浮かばなかった。
なので・・・image.phpで呼び出されているintermediate_image_sizes_advanced、image_make_intermediate_size関連の動作を見るためにmedia.phpやplugin.phpを眺める

・‥…━(゚∀゚)━━━☆

 
flexible uploadを使う前提ならintermediate_image_sizes_advancedの返り値なんて要らないんじゃないか。
image_make_intermediate_sizeはwidth、heightの値が無ければfalseを返すのでif ( $resized )の条件には入らなくなる。

ならプラグインでintermediate_image_sizes_advancedにフィルターをかけて空の配列を出力するようにさせてやればいけるんじゃ・・・
と言うことで完成。

早速修正したコアファイルを元に戻してプラグインを入れてテスト。
アップロード時に警告でなくなったよ!

これでコアファイルを修正しないで警告の表示が消えるようになりました。

ごみプラグインだけれど一応配布しておきます。
flexible-upload_fix_10_b.zip ... [ダウンロード]
MD5: 3ae197ed342385feead3cc25937be635
ご利用は自己責任で。

 
2010/07/21 追記
配布ファイルにflexible-upload 1.13のflexible-upload.php、flexible-upload-wp25.phpを修正したファイルを追加。

関連するかもしれない記事



トラックバックURL


スパム対策のためトラックバックURLを動的に生成しています。
生成されるトラックバックURLはコンテンツURLと紐付けされますので、コンテンツURLで指定したサイト以外では使用できませんのでご注意ください。
トラックバックの注意事項などの詳しい説明は About ページを閲覧してください。
「コンテンツURL」を入力し「URL生成」ボタンを押してください。
トラックバックを送る際はあなたの記事やコンテンツにこの記事のURLを書くかリンクしておいてください。
URLがない場合はスパムとして削除され以降の全トラックバックは拒否されます。
  • コメント
  • ピンバック/トラックバック
  1. 1102
    comment
    0
    0
    ひろしID: 947byyKIE3tYA
    2010/08/21 (土曜日) 22:54:24返信

    こんばんは。
    WP3.0.1でflexible uploadをインストールしたのですが、サムネールのサイズ設定を行う画面が出ず、悩んでおりました。こちらで配布されている「flexible uploadのメインファイルをwp2.9/3.0に対応させたもの」を使わせて頂いたところ、うまく行きました。ありがとうございました。

  2. 1066
    comment
    0
    0
    こえID: 09JqO3HjdhMZY
    2010/07/22 (木曜日) 16:01:05返信

    遅くななりました
    おかげさまでウインドウの位置ずれなおりました。
    中の位置ずれは許容範囲だと思います 。

    ありがとうございました!

  3. 1064
    comment
    0
    0
    こえID: 09uWOo8gBpgj2
    2010/07/20 (火曜日) 21:48:58返信

    修正プラグインを無効にしても発生しました。
    私がwp3.0で動くようにflexible-upload.phpを修正したのがいけなかったのでしょうか。
    もしよろしければれいま様の所で使われているコードをアップしていただけませんか?

    • 1065
      comment
      0
      0
      れいまID: -
      2010/07/21 (水曜日) 21:10:51

      色々テストしてみたところIE環境のみウィンドウの位置がずれるようです。
      自分はIEを使っていなかったので気付くのに時間がかかりました・w・;

      ウィンドウの位置ずれは直りましたがメディアライブラリの中身も位置ずれしています。
      CSSで上書きして直そうとしましたがうまくできませんでした・・・。

      配布ZIPファイルの中身を更新しましたので確認してみてください。

  4. 1062
    comment
    0
    0
    こえID: 09uWOo8gBpgj2
    2010/07/20 (火曜日) 09:02:15返信

    ちゃんと動作してらっしゃるようなので質問させていただきます。
    私の環境(wp3.0ja)ではFlexibleUpload1.13とこちらで配布されている修正プラグインを有効にしてアップローダーを開くと画面にはみ出ます。
    れいま様のブログは大丈夫なのでしょうか?

    • 1063
      comment
      0
      0
      れいまID: -
      2010/07/20 (火曜日) 20:35:13

      こちらは特に問題は出ていません。
      flexible upload fixプラグインを無効にしても症状が発生しますか?

  5. 1060
    comment
    0
    0
    45.netID: 4fQ7zXxAVdCVA
    2010/07/14 (水曜日) 20:19:48返信

    こちらの環境でもエラーが出なくなりました
    GJ!

  1. 1476
    pingback
    0
    0
    Life + Design » (続)2.9~...ID: 1f2hsGP0mVszc
    2016/02/03 (水曜日) 01:58:38

    […] ・このサイトREIMA’s Blogで配布している修正ファイルをダウンロード。 […]

    pingback from: Life + Design » (続)2.9~でFlexible Uploaderを使う |note
  2. 1103
    trackback
    0
    0
    Nakamura's IP BlogID: b0I4xv2hhYl86
    2010/08/21 (土曜日) 23:16:27

    WP 3.0.1で「Flexible Upload」がうまく動かない件は解決

    WP3.0.1で画像のデフォルトのサムネールサイズが小さくかつ固定されているのが残念に思っていたところ、「Flexible Upload」と言ういいプラグインがありました。設定メニューの日本語化は...

    trackback from: Nakamura's IP Blog
  3. 1061
    pingback
    0
    0
    画像表示 | トム教室|パソコン教...ID: 3aCdD6EpA08CE
    2010/07/18 (日曜日) 17:24:02

    [...] よく調べたら、ここからのダウンロードした方がいいです。WordPress 2.9/3.0でflexible uploadを使った時のエラー [...]

    pingback from: 画像表示 | トム教室|パソコン教室|茨城県|鉾田市|造谷

コメントを残す

メールアドレスは公開されません、また は必須項目です。
このブログに初めてコメントする方は こちら をご覧ください。


画像認証は待機中です、先にコメント本文を入力して下さい。

コメントを送信しています、しばらくお待ち下さい...
(Akismetスパムデータベース及びブラックリストへの照会を行っています)


キャンセルをした場合でもコメント投稿が完了している場合があります