如果你看看_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
.