黑客上传与Wordpress插件集成

时间:2012-01-23 15:01:57

标签: wordpress plugins uploadify

我正在使用带有Uploadify Integration Wordpress plugin的Uploadify,所有上传的文件都转到:wp-content/uploads/year/month/。如何破解/改进插件以使文件存储在具有登录用户名的路径中,以便我可以区分谁上传了这些文件?

或者可以使用登录用户的用户名动态添加前缀?

我阅读the discussion from this link并根据Wordpress codex我可以使用此功能获取Wordpress用户名:

<?php global $current_user;
      get_currentuserinfo();

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

但我不知道如何修改插件并实现它。

当然,我已经联系过该插件的作者,但仍然没有回复。

1 个答案:

答案 0 :(得分: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');

我通过向pre_option_upload_pathpre_option_upload_url_path添加过滤器解决了这个问题,从而在路径末尾添加了用户名和网址。

到目前为止尚未经过测试,我还没有尝试上传。我确认wp_content_url()将返回包含用户名的路径和网址。我决定将用户名放在日期之前,因为这是最容易完成的事情,但我得到的结果与user_upload_dir过滤器和一些正则表达式相反。