2012-01-23 20 views
1

UploadifyをUploadify Integration Wordpress pluginで使用しています。アップロードされたファイルはすべてwp-content/uploads/year/month/です。どのようにしてプラグインをハック/改善して、ファイルがログインしたユーザーの名前を持つパスに保存されるようにすることができますか?Wordpressプラグインとの統合Uploadify

ログインしたユーザーのユーザー名をプレフィックスとして動的に追加することはできますか?

私はthe discussion from this linkを読み、Wordpressのコーデックスによると、私はこの機能をWordpressのユーザー名を取得することができます。

<?php global $current_user; 
     get_currentuserinfo(); 

     echo 'Username: ' . $current_user->user_login ?> 

しかし、私はプラグインを変更し、それを実装する方法がわかりません。

もちろん、私はすでにプラグインの著者に連絡しても依頼はありませんが、依然として回答はありません。

答えて

0

私はこれをテストしていませんが、それはかなり遠くにあなたを得る可能性があります:

function user_upload_path($path = null) { 

    global $current_user; 
    get_currentuserinfo(); 

    $user_path = sanitize_file_name($current_user->user_login); 

    return sprintf('%s/uploads/%s', WP_CONTENT_DIR, $user_path); 

} 
add_filter('pre_option_upload_path', 'user_upload_path'); 

function user_upload_url_path($path = null) { 

    global $current_user; 
    get_currentuserinfo(); 

    $user_path = sanitize_file_name($current_user->user_login); 

    return sprintf('%s/uploads/%s', WP_CONTENT_URL, $user_path); 

} 
add_filter('pre_option_upload_url_path', 'user_upload_url_path'); 

を私はこのように、パスとURLの末尾にユーザ名を追加することpre_option_upload_pathpre_option_upload_url_pathにフィルタを追加することでこれを解決しました。

私はまだアップロードを試みていません。 wp_content_url()がユーザー名を含むパスとURLの両方を返すことを確認しました。私は達成するのが最も簡単なので、ユーザー名を日付の前に置くことにしましたが、user_upload_dirフィルターと正規表現を使用して逆にすることができます。

+0

アップロードを試してみることにしました。それはうまく動いているようです。また、サイドノートでは、WordPressやその他のプラグインによって値が上書きされるのを避けるために 'pre_option_%s'フィルタを使用しました。実際にいくつかのカスタマイズ可能性がある場合は、代わりに 'option_%s'等価物を使用してください。 – Simon

+0

ファイルをアップロードするたびに 'update_post_meta'を行い、アップロードを実行するユーザのユーザ名を保存することもできます。アップロードが完了し、正しく保存され、投稿に挿入できる間に、他のユーザーが管理パネルで閲覧していると、ファイルのURLは間違っています。メディアセクション。ファイルをアップロードして表示するために、さまざまなフィルタを使用することもできます。 – Simon

関連する問題