Flexible Upload プラグインが動かなくなった

WordPress で動いている2つのブログのうち、一方で Flexible Upload がプラグインが動かなくなったみたい。

動いている方は WordPress 2.6.3 で、動かない方は WordPress 2.6.1 なので、ひとまずアップグレードしてみようか。
アップグレード後にプラグインを有効化して行く際に、Flexible Upload プラグインとコンフリクトしているプラグインがないかどうかも確認できるし。

2.6.5 にしたらエラーが出るようになった

画像アップロードの画面でこんなエラーが出る。

Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, ‘media_admin_css’ was given in /www/users/……./wp-includes/plugin.php on line 311

検索すると修正方法が見つかった。flexible-upload-wp25.php ファイルを少しいじるだけでいいみたい。

To solve the error, please refer: http://wordpress.org/support/topic/186579, and look at alexrabe's reply,

what should be done is to modify “flexible-upload-wp25.php” and find following content,

function fup_set_actions() {
remove_action('media_upload_image', 'media_upload_image');
add_action('media_upload_image', 'fup_media_upload_image');
add_action('admin_head_fup_media_upload_form', 'media_admin_css');
remove_filter('media_send_to_editor', 'image_media_send_to_editor');
add_filter('media_send_to_editor', 'fup_media_send_to_editor', 10, 3);
}

and add red font part

function fup_set_actions() {
remove_action('media_upload_image', 'media_upload_image');
add_action('media_upload_image', 'fup_media_upload_image');
// not longer needed for wp2.6
if ( !function_exists('wp_enqueue_style') )
add_action('admin_head_fup_media_upload_form', 'media_admin_css');
remove_filter('media_send_to_editor', 'image_media_send_to_editor');
add_filter('media_send_to_editor', 'fup_media_send_to_editor', 10, 3);
}

あと、同じファイルの fup_admin_header() 関数にも echo 以下の1行を追加する必要があるみたい。

function fup_admin_header() {
    global $fup_rel_dir;
    wp_enqueue_script('fup_swfupload',
                      '/'.$fup_rel_dir.'flexible-upload-wp25js.php',
                      array('prototype'), false);

   echo '<link rel="stylesheet" href="'. get_option('home') .'/wp-admin/css/media.css?ver=20080709" type="text/css" />'. "\n";

}

僕の場合は、サブディレクトリにインストールしているので、上のコードではうまく動かない。get_option('siteurl') を使う必要があった。

echo '<link rel="stylesheet" href="'. get_option('siteurl') .'/wp-admin/css/media.css?ver=20080709" type="text/css" media="all" />'. "\n";

エラーの原因は日本語かも?

アップロードの際に Title 欄に日本語を含めるとアップロードが終わっても完了画面に遷移しないような感じ。英数のみでアップロードすればうまく行くようだ。