WordPress媒体文件上传路径如何自定义?为什么需要自定义?现在的网站好多都是动静分离,尤其是后期,服务器数据容量越来越少,就需要增加数据盘。如果将上传的媒体文件指定目录存储呢?今天有两种方法:
方案一:官方钩子修改
通过WordPress官方提供的钩子add_filter修改上传路径,将以下代码添加进前主题functions.php文件中:
- function new_upload_dir($uploads) {
- $siteurl = get_option( 'siteurl' );
- $uploads['path'] = WP_CONTENT_DIR . '/new';
- $uploads['url'] = $siteurl . '/wp-content/new';
- $uploads['subdir'] = '';
- $uploads['basedir'] = $uploads['path'];
- $uploads['baseurl'] = $uploads['url'];
- $uploads['error'] = false;
- return $uploads;
- }
- add_filter('upload_dir', 'new_upload_dir');
添加完成后保存文件,并清理PHP缓存后,新增的媒体文件就会默认上传到路径wp-content/new,目录名称自己自定义,但是需要记住的是,使用此方法修改后,如果再次修改,那么后台媒体是不会显示之前上传的图片的!
方案二:WordPress上传路径选项
从WordPress3.5版本开始,就隐藏了后台媒体设置页面的“默认上传路径和文件的完整URL地址”选项,但是我们可以通过下面的代码将该选项调出来。
将如下代码添加到当前主题functions.php文件中:
- if(get_option('upload_path')=='wp-content/uploads' || get_option('upload_path')==null) {
- update_option('upload_path',WP_CONTENT_DIR.'/uploads');
- }
然后刷新后台,设置-媒体里边就出来了上传路径
出现了设置选项后可以删除此代码,但是需要注意的是,媒体默认上传路径只能是相对路径,如默认的wp-content/uploads