WordPress自定义上传路径 和 生成文件的URL地址

WordPress 3.5以上的版本,隐藏了后台的媒体(Media)设置页面 上传路径(upload_path)和文件 URL 地址(upload_url_path)的设定,如下图为之前版本的设置界面:

wpdaxue.com-201212200

通过这里的设置,你可以自定义文件保存的位置,和生成的地址,这个功能是比较不错的,就是不知道为啥要隐藏。如果你还是需要自定义,可以试试下面的方法。

使用代码恢复

2013-12-14: @斌果 朋友分享,直接将下面的代码添加到主题的 functions.php,就可以恢复设置界面了:

1
2
3
4
//找回上传设置
if(get_option('upload_path')=='wp-content/uploads' || get_option('upload_path')==null) {
	update_option('upload_path',WP_CONTENT_DIR.'/uploads');
}

推荐使用这个方法,最简单有效。

通过代码直接定义

将下面的代码添加到主题的 functions.php 的最后一个 ?> 前面:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
add_filter( 'upload_dir', 'wpjam_custom_upload_dir' );
function wpjam_custom_upload_dir( $uploads ) {
	$upload_path = '';
	$upload_url_path = '';
 
	if ( empty( $upload_path ) || 'wp-content/uploads' == $upload_path ) {
		$uploads['basedir']  = WP_CONTENT_DIR . '/uploads';
	} elseif ( 0 !== strpos( $upload_path, ABSPATH ) ) {
		$uploads['basedir'] = path_join( ABSPATH, $upload_path );
	} else {
		$uploads['basedir'] = $upload_path;
	}
 
	$uploads['path'] = $uploads['basedir'].$uploads['subdir'];
 
	if ( $upload_url_path ) {
		$uploads['baseurl'] = $upload_url_path;
		$uploads['url'] = $uploads['baseurl'].$uploads['subdir'];
	}
	return $uploads;
}

注意修改第3、4行中$upload_path 和 $upload_url_path ,例如

1
2
	$upload_path = 'img';
	$upload_url_path = 'https://static.wpdaxue.com/img';

使用插件恢复

你可以下载安装 Ps Display Upload_path For WP3.5 插件,然后就可以在后台 - 设置 - 多媒体,看到原来的设置选项啦

倡萌

一个文科IT宅男,喜欢折腾WordPress和被它折腾 ^_^

23 条评论

  1. 如果想将上传的文件按日期分不同目录存储,比如10月上传的文件就自动存放在目录 wp-content/uploads/201510/ 该如何实现呢?

      1. 我的设置里面没有选项设置,是不是因为我开启多站点问题?没那个选项要到哪设置呢?

      2. 知道了弄好了,开启多站点后在网络管理-所有站点-选择站点编辑-设置 里面有个【Uploads Use Yearmonth Folders】选项,设置成Y 就可以了

  2. 请问,如何修改wp显示图片的完整路径,例如:http://www.abc.com/wp-content/uploads/2014/4/2/img.jpg”这样的方式,现在都是显示:”/wp-content/uploads/2014/4/2/img.jpg”的方式,因为我用到七牛镜像存储,没有完整路径的图片根本不会同步到七牛,请问如何解决,谢谢。。

      1. upload_url_path = ‘http://img.freeeword.com我设置对了。但是 上传路径(upload_path)我输入./img。上传图片不能正常显示,只显示交叉,img文件夹和img.freeeword.com是不是在同一个根目录,还是img文件夹要在img.freeeword.com里面的,例如img.freeword.com/img

        1. 你好,如果是虚拟主机,请联系主机商咨询。如果是服务器或vps,一般可以通过新建站点,只能这个目录,并绑定你需要的域名来实现

发表评论