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

本文介绍了在WordPress 3.5之后如何自定义上传路径和文件URL地址,包括通过options.php设置、定义UPLOADS常量以及使用upload_dir filter的方法,详细解析了每种方法的实现步骤和适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  WordPress 3.5之后 一个最大的改变就是更加简洁化,把一些用户不常使用的设置去掉或者隐藏了,比如后台的媒体(Media)设置页面隐藏上传路径(upload_path)和文件 URL 地址(upload_url_path)的设定就被隐藏了。如果你还要进行设置这两个选项,现在只能在 options.php 中进行设置,或者使用 UPLOADS 常量,也可以使用 upload_dir 这个 filter。下面分别介绍下这三种方法:

  1. options.php 中设置

  直接访问:http://你的域名/wp-admin/options.php,然后找到下面选项,将其设置为你所需的参数。

upload_path

  2. 定义 UPLOADS 常量

  在 wp-config.php 文件中定义 UPLOADS 这个常量:

define('UPLOADS','my-uploads');

  这个方法有个不好的地方:只能指定上传的相对目录,生成文件的 URL 地址不能使用子域名,这样在做静态文件 CDN 加速的时候就不是很方便。

  3. 使用 upload_dir filter

  这个方法,效果其实和第一个方法基本一致:

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;
}

  将上面代码中的 $upload_path$upload_url_path 改成你要的值,然后上传到当前主题的 fucntions.php 文件即可。

  另外这三种方法的优先级是:使用 upload_dir filter > 定义 UPLOADS 常量 > options.php 中设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值