我正在使用带有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 ?>
但我不知道如何修改插件并实现它。
当然,我已经联系过该插件的作者,但仍然没有回复。
答案 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_path
和pre_option_upload_url_path
添加过滤器解决了这个问题,从而在路径末尾添加了用户名和网址。
到目前为止尚未经过测试,我还没有尝试上传。我确认wp_content_url()
将返回包含用户名的路径和网址。我决定将用户名放在日期之前,因为这是最容易完成的事情,但我得到的结果与user_upload_dir
过滤器和一些正则表达式相反。