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 久久久久无码精品国产app| 亚洲精品美女久久777777| 欧美精品一区二区精品久久| 久久婷婷国产综合精品 | 精品久久亚洲中文无码| 亚洲国产精品久久久天堂| 色综合久久综精品| 77777亚洲午夜久久多喷| 品成人欧美大片久久国产欧美| 亚洲国产日韩欧美久久| 成人久久综合网| 国产69精品久久久久APP下载| 国内精品人妻无码久久久影院| 久久露脸国产精品| 久久精品无码专区免费青青| 欧美久久综合九色综合| 国产一级做a爰片久久毛片| 精品久久久久久久久免费影院| 色综合久久天天综合| 欧美亚洲色综久久精品国产| 香蕉aa三级久久毛片| 精品国产一区二区三区久久蜜臀| 中文字幕久久久久人妻| 久久这里只精品99re66| 久久青青国产| 欧美色综合久久久久久| 久久综合久久久| 久久综合久久综合久久综合| 久久久久人妻一区精品性色av| 亚洲精品第一综合99久久| 久久久久这里只有精品| 久久夜色精品国产www| 99久久精品免费观看国产| 国产精品伊人久久伊人电影| 国产精品99久久免费观看| 久久精品水蜜桃av综合天堂| 色妞色综合久久夜夜| 高清免费久久午夜精品| 亚洲国产成人久久精品动漫| 久久91精品国产91久久小草| 2020最新久久久视精品爱|