您现在的位置是:首页 > cms教程 > WordPress教程WordPress教程

wordpress上传文件位置在哪

绿春2023-07-01WordPress教程已有人查阅

导读WordPress默认的上传文件的目录是/wp-content/uploads,而且文件是以年月的形式组织的,虽然我们可以去掉按照年月组织的选项,或者更改存储路径

wordpress上传的文件在哪

WordPress默认的上传文件的目录是/wp-content/uploads,而且文件是以年月的形式组织的,虽然我们可以去掉按照年月组织的选项,或者更改存储路径,但这个设置会应用到全局,不能按照特定条件选择特定目录存储文件。

WordPress上传默认设置

有时候将不同类型的文件分门别类存储,似乎比年月目录更有意义。例如幻灯片应该存储在slides目录下,下载文件应该存储在downloads文件夹下。就说幻灯片slideshow,我比较喜欢用自定义文章类型(Custom Post Type)实现,有些幻灯片脚本比较个性,不支持 路径,必须用相对路径,然后用base参数设置相对于哪个文件夹,这样幻灯片必须存储在某个特定的文件夹中,年月形式显然不满足要求。所以,我们需要条件化的设置上传目录。

为Custom Post Type设置上传目录

假设我要将所有在幻灯片类型的文章中上传的文件存储到/wp-content/uploads/slides文件夹中,将下面的代码放到主题的functions.php中即可

function custom_upload_directory( $uploads ) {
    $id = $_REQUEST['post_id'];
        $parent = get_post( $id )->post_parent;
 
    if( "post-type" == get_post_type( $id ) || "post-type" == get_post_type( $parent ) ) {
        $subdir = 'slides';
        $uploads['subdir'] = $subdir;
        $uploads['path'] = $uploads['basedir'].DIRECTORY_SEPARATOR.$subdir;
        $uploads['url'] = $uploads['baseurl'].'/'.$subdir;
    }
    return $uploads;
}
add_filter( 'upload_dir', 'custom_upload_directory' );

将post-type替换成自己的自定义文章类型名称,将你要创建的子目录赋值给$subdir。

将文件保存到插件目录

下面的代码要用在插件中,文件会保存到插件目录下的uploads文件夹下。

/**
 * Change Upload Directory for Custom Post-Type
 *
 * This will change the upload directory for a custom post-type. Attachments will
 * now be uploaded to an "uploads" directory within the folder of your plugin. Make
 * sure you swap out "post-type" in the if-statement with the appropriate value...
 */
function custom_upload_directory( $args ) {
  
    $id = $_REQUEST['post_id'];
    $parent = get_post( $id )->post_parent;
  
    // Check the post-type of the current post
    if( "post-type" == get_post_type( $id ) || "post-type" == get_post_type( $parent ) ) {
        $args['path'] = plugin_dir_path(__FILE__) . "uploads";
        $args['url']  = plugin_dir_url(__FILE__) . "uploads";
        $args['basedir'] = plugin_dir_path(__FILE__) . "uploads";
        $args['baseurl'] = plugin_dir_url(__FILE__) . "uploads";
    }
    return $args;
}
add_filter( 'upload_dir', 'custom_upload_directory' );

如果要以年月形式保存,修改一下代码即可

$args['path'] = plugin_dir_path(__FILE__) . "uploads" . $args['subdir'];
$args['url']  = plugin_dir_url(__FILE__) . "uploads" . $args['subdir'];

这段代码来自 http://wordpress.stackexchange.com/questions/35657/how-to-add-more-upload-directories/

为后台管理页面设定upload_dir

用wp_editor在后台管理页面(比如用add_menu_page创建的页面)创建一个媒体上传功能,希望所有从该页面上传的文件都保存到wp-content/uploads/myfolder目录下。

由 于ajax上传是直接调用wp-admin/async_upload.php文件,只能通过post_id获取post信息,而后台管理页面并非 post,所以判断什么时候应该更改upload_dir有些麻烦。此时,可以用采用判断页面referer的方法,用wp_get_referer() 函数获取引荐url,如果正好与我们的option page url想等,就更该目录。

function custom_upload_directory( $uploads ) { 
   if( wp_get_referer() == 'http://domain.com/wp-admin/admin.php?page=myoptionpage'){
        $subdir = 'myfolder';
        $uploads['subdir'] = $subdir;
        $uploads['path'] = $uploads['basedir'].DIRECTORY_SEPARATOR.$subdir;
        $uploads['url'] = $uploads['baseurl'].'/'.$subdir;
   }
   return $uploads;
}
add_filter( 'upload_dir', 'custom_upload_directory' );

参考信息

filter:upload_dir是在wp_upload_dir()函数中调用的

$upload_dir = wp_upload_dir();
$upload_dir now contains something like the following (if successful)
Array (
    [path] => C:pathtowordpresswp-contentuploads20105
    [url] => http://example.com/wp-content/uploads/2010/05
    [subdir] => /2010/05
    [basedir] => C:pathtowordpresswp-contentuploads
    [baseurl] => http://example.com/wp-content/uploads
    [error] =>
)

本文标签:

很赞哦! ()

相关源码

  • (自适应响应式)投资理财金融机构财务管理pbootcms模板本模板基于PbootCMS系统开发,为投资理财、金融机构等行业设计。采用专业严谨的布局风格,突出金融服务行业特色,适合展示各类理财产品、投资服务和金融资讯。查看源码
  • 帝国CMS7.5手游资讯下载综合门户免费网站模板本模板基于帝国CMS7.5内核开发,为手游打造的综合门户网站解决方案。模板设计充分考虑了手业的特性,包含游戏资讯发布、手游下载、礼包发放、开测信息等核心功能模块,满足手游门户网站的各项业务需求。查看源码
  • 自适应手机版五金机械阀门设备通用行业网站模板该PbootCMS内核开发的网站模板适用于阀门设备、五金机械类企业,通过更换文字图片也可快速适配其他工业领域。采用响应式设计,确保PC端与手机端数据同步,操作便捷,并附带测试数据。查看源码
  • 帝国cms7.5自适应作文新闻资讯教育网站模板本模板基于帝国CMS7.5内核开发,为教育机构、培训学校等知识传播单位打造。通过自适应设计确保在手机、平板、电脑等设备上均能获得专业浏览体验查看源码
  • pbootcms模板(PC+WAP)微信小程序开发公司网站本模板为微信小程序开发代理、软件开发公司等企业设计,基于PbootCMS内核开发,支持PC+WAP双端响应式布局,数据实时同步,适用于多行业快速建站。查看源码
  • (自适应)大型农业机械设备水稻玉米收割机网站pbootcms源码下载本模板基于PbootCMS内核开发,为农业机械设备制造与销售企业设计,特别适合水稻玉米收割机、拖拉机、播种机等农用机械展示。模板充分考虑了农机行业的特性,从产品展示到技术参数,从作业案例到售后服务查看源码
分享笔记 (共有 篇笔记)
验证码: