我正在用Uploadify Integration Wordpress plugin上传文件,所有上传的文件都到:wp-content/uploads/year/month/。我如何修改/改进插件,使文件存储在具有登录用户名称的路径中,以便我可以区分是谁上传了这些文件?
或者,是否可以动态添加一个用户名为登录用户的前缀?
我读了the discussion from this link,根据Wordpress的索引,我可以用下面的函数得到Wordpress的用户名:
<?php global $current_user;
get_currentuserinfo();
echo 'Username: ' . $current_user->user_login ?>但我不知道如何修改插件并实现它。
当然,我已经联系了插件的作者,并询问了,但仍然没有答复。
发布于 2012-02-15 04:22:58
我还没有测试过这个,但它可能会让你走得很远:
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_path和pre_option_upload_url_path添加过滤器来解决这个问题,从而在路径和url的末尾添加用户名。
到目前为止还没有测试过,所以我还没有尝试上传。我确实确认了wp_content_url()将返回包含用户名的路径和url。我决定将用户名放在日期之前,因为这是最容易完成的事情,但我知道您可以使用user_upload_dir过滤器和一些正则表达式来完成相反的操作。
https://stackoverflow.com/questions/8973658
复制相似问题