在新安装时,我想将上载文件夹移动到子域(应该可以加快下载速度)。我的子域链接到一个名为static的文件夹。所以我有:
现在我需要告诉WordPress上传文件夹的位置并定义其URL。这个codex 说我应该编辑wp config来定义相对于ABSPAHT的上传。但如果我把define( \'UPLOADS\', \'../static\' );
当然,页面中的URL如下//mydomain.tld/wp/../static/image.jpg
我环顾四周,找到了许多不同的答案(过滤器、DB编辑等),其中一些不再正确(因为媒体设置页面不再允许更改上载文件夹),还有一些明显错误。。。我想用正确的方法来做。
我去了wp管理员/选项。php页面和设置upload_path = ../static
和upload_url_path = http://static.mydomain.tld
这似乎奏效了。
But is that how it\'s supposed to be done? 如果开发人员已经从“媒体设置”页面中删除了这些选项,该功能以后是否会被完全删除?
最合适的回答,由SO网友:kovshenin 整理而成
我去了wp管理员/选项。php页面和设置。。。但这就是应该做的吗?
没有。您不应该更改WordPress核心文件中的任何内容,因为您所做的所有更改都将在下次更新期间丢失。您应该改用操作和筛选器:
add_filter( \'pre_option_upload_path\', function( $upload_path ) {
return \'/path/to/static\';
});
add_filter( \'pre_option_upload_url_path\', function( $upload_url_path ) {
return \'http://static.example.org\';
});
SO网友:biziclop
如果出于任何原因,您不想在数据库或functions.php
, 您仍然可以在wp-config.php
这样(在调用任何WordPress核心文件之前):
$GLOBALS[\'wp_filter\'][\'pre_option_upload_path\'][10][] = array(
\'function\' => function( $upload_path ){
return \'/path/to/static\';
},
\'accepted_args\' => 1,
);
$GLOBALS[\'wp_filter\'][\'pre_option_upload_url_path\'][10][] = array(
\'function\' => function( $upload_url_path ){
return \'http://static.example.org\';
},
\'accepted_args\' => 1,
);
WP_Hook::build_preinitialized_hooks
将这些数组项正确更新为实际使用的内部格式。