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

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

wpdaxue.com-201212200

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

使用代码恢复

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

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

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

通过代码直接定义

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

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 ,例如

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

使用插件恢复

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

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
欢迎关注我们的微信公众号:WPDAXUE

倡萌

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

23 条评论

  1. 这样一改,是不是所有文件都在一个文件夹内呢?还是有子目录呢?

    1. $upload_path = ‘wp-content/uploads/aaa’; 像这样设置不知道传到哪里了

      1. 那就是上传到 wp-content/uploads/aaa 这个路径了,确保你的 wp-content/uploads/下有 aaa 这个文件夹,以及文件夹可写入

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

    1. 设置 – 多媒体 界面有一个“以年—月目录形式组织上传内容”选项,勾选即可

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

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

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

  4. 设置后upload_url_path = ‘http://pic.wpdaxue.com,多媒体上传的图片显示不了呀

    1. 哥们,你要设置为你自己的网址啊,如果是二级域名,要解析到你的主机啊

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

  5. 博客地址/wp-admin/options.php我在这里修改了。想着想改回来,却改不了了

    1. 这个是同一个空间才能用的哦,不同空间需要借助其他插件设置FTP上传才行

  6. 非常好的分享,有一个疑问,这个要绑定 img.wpdaxue.com域名吗?

    1. 我的是在网站的根目录新建一个img文件夹,然后将设置上传目录为这个文件夹,最后将 img.wpdaxue.com绑定到这个文件夹。

      1. 按你的这个步骤,真的成功了,我昨天在网上找了一天都没成功

      2. 请问怎么将域名解析到服务器下的某个特定文件夹呢?

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

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注