如果你看看_wp_upload_dir, 您将看到:
if (defined(\'UPLOADS\') && ! (is_multisite() && get_site_option(\'ms_files_rewriting\'))) {
$dir = ABSPATH.UPLOADS;
$url = trailingslashit($siteurl).UPLOADS;
}
所以
UPLOADS 只能用于定义相对于
ABSPATH, 我想是的
/WordPress 安装程序中的文件夹。
在相同的函数中,您可以看到如果get_option(\'upload_path\') 和get_option(\'upload_url_path\') 为空,上载文件夹的路径和URL分别设置为,WP_CONTENT_DIR.\'/uploads\' 和WP_CONTENT_URL.\'/uploads\' 这对你来说应该很好,只要你定义WP_CONTENT_DIR 和WP_CONTENT_URL 就像在OP。
如果您不定义UPLOADS而且uploads文件夹仍然没有解析为/app/uploads, 很可能您的数据库中包含\'upload_path\' 和\'upload_url_path\' 选项。
您有两种可能性:
删除这些选项使用"pre_option_{$option}" 要强制的筛选器get_option() 为这些选项返回空的内容(但不是false 否则过滤器将被忽略)对于第二种可能性,代码可能是这样的:
add_filter(\'pre_option_upload_path\', \'__return_empty_string\');
add_filter(\'pre_option_upload_url_path\', \'__return_empty_string\');
有上述代码,且无任何
UPLOADS 定义的常量,只要您定义
WP_CONTENT_DIR 和
WP_CONTENT_URL, 应正确解析uploads文件夹。
如果没有发生这种情况,那么必须有某种东西作用于某些过滤器,例如upload_dir.