wordpress上傳的文件在哪

wordpress上傳的文件在哪

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-contentuploads2010

久久亚洲欧美国产精品|
亚洲人成电影网站久久|
国产精品美女久久久久久2018|
一本一本久久A久久综合精品|
久久国产精品成人片免费|
无码人妻久久一区二区三区|
久久精品国产秦先生|
日韩美女18网站久久精品|
久久久久波多野结衣高潮|
国产情侣久久久久aⅴ免费|
欧美亚洲另类久久综合|
香蕉久久夜色精品国产尤物|
精品免费久久久久久久|
久久这里只有精品视频99|
久久午夜伦鲁片免费无码|
久久国产V一级毛多内射|
久久夜色精品国产欧美乱|
美女久久久久久|
99久久精品国产一区二区三区|
国产A级毛片久久久精品毛片|
亚洲综合精品香蕉久久网97|
久久久久亚洲av无码专区|
青青热久久国产久精品
|
99久久婷婷国产一区二区|
国产成人精品三上悠亚久久|
午夜视频久久久久一区|
久久久国产精品网站|
99久久无码一区人妻a黑|
亚洲va中文字幕无码久久|
伊人久久大香线蕉AV一区二区|
国产亚州精品女人久久久久久
|
一级A毛片免费观看久久精品|
精品一区二区久久久久久久网站|
亚洲精品乱码久久久久久
|
99久久99久久久精品齐齐|
亚洲第一极品精品无码久久|
中文字幕久久久久人妻|
精品久久久无码人妻中文字幕
|
久久婷婷五月综合色99啪ak|
91精品国产91久久久久久|
色综合久久综合网观看|