{"id":15251,"date":"2025-10-01T07:27:27","date_gmt":"2025-10-01T07:27:27","guid":{"rendered":"https:\/\/www.kadencewp.com\/help-center\/?post_type=docs&#038;p=15251"},"modified":"2026-04-22T16:26:44","modified_gmt":"2026-04-22T16:26:44","password":"","slug":"custom-upload-directory-form-adv-block","status":"publish","type":"docs","link":"https:\/\/www.kadencewp.com\/help-center\/docs\/kadence-blocks\/custom-upload-directory-form-adv-block\/","title":{"rendered":"Custom Upload Directory in Kadence Form (Adv) Block"},"content":{"rendered":"\n<p>By default, files uploaded through Kadence Blocks Advanced Form are stored in the WordPress uploads directory under:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">\/wp-content\/uploads\/kadence_form\/<\/code><\/pre>\n\n\n\n<p><br>These files are also organized into <strong>year<\/strong> and <strong>month<\/strong> subfolders, such as:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">\/wp-content\/uploads\/kadence_form\/2025\/10\/<\/code><\/pre>\n\n\n\n<p>In some cases, you may want to store form uploads in a different location. For example, you might want them all in one single folder, outside of the default uploads directory, or even in a completely private location. This can make your files easier to organize, more secure, and separate from the rest of your WordPress media library.<\/p>\n\n\n\n<p>Kadence provides the filter <strong>kadence_blocks_advanced_form_upload_directory<\/strong> which lets you override the default upload location.<\/p>\n\n\n\n<p>The filter receives the <strong>$param array<\/strong> (same format as WordPress\u2019 native <strong>upload_dir<\/strong> filter). You can modify this array to control the file system path and the URL of where Kadence Form uploads are stored.<\/p>\n\n\n\n<p>The custom code\u00a0in this\u00a0tutorial\u00a0can be added to your site\u2019s\u00a0<code>functions.php<\/code>\u00a0file if you\u00a0are\u00a0using a child theme. If you\u00a0are\u00a0not using a child theme,\u00a0you\u00a0should\u00a0use\u00a0a plugin such as\u00a0<strong><a href=\"https:\/\/www.kadencewp.com\/help-center\/docs\/kadence-theme\/how-to-add-a-custom-filter-or-function-with-code-snippets\/\">Code Snippets<\/a><\/strong>\u00a0to\u00a0add custom code\u00a0safely\u00a0without editing theme files directly.<\/p>\n\n\n<style>.kb-table-of-content-nav.kb-table-of-content-id15251_136c9c-ff .kb-table-of-content-wrap{padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);}.kb-table-of-content-nav.kb-table-of-content-id15251_136c9c-ff .kb-table-of-contents-title-wrap{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.kb-table-of-content-nav.kb-table-of-content-id15251_136c9c-ff .kb-table-of-contents-title{font-weight:regular;font-style:normal;}.kb-table-of-content-nav.kb-table-of-content-id15251_136c9c-ff .kb-table-of-content-wrap .kb-table-of-content-list{font-weight:regular;font-style:normal;margin-top:var(--global-kb-spacing-sm, 1.5rem);margin-right:0px;margin-bottom:0px;margin-left:0px;}<\/style>\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading15251_841899-27, .wp-block-kadence-advancedheading.kt-adv-heading15251_841899-27[data-kb-block=\"kb-adv-heading15251_841899-27\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading15251_841899-27 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading15251_841899-27[data-kb-block=\"kb-adv-heading15251_841899-27\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading15251_841899-27 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading15251_841899-27[data-kb-block=\"kb-adv-heading15251_841899-27\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading15251_841899-27 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading15251_841899-27\">Examples<\/h2>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading15251_e0e0d9-f0, .wp-block-kadence-advancedheading.kt-adv-heading15251_e0e0d9-f0[data-kb-block=\"kb-adv-heading15251_e0e0d9-f0\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading15251_e0e0d9-f0 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading15251_e0e0d9-f0[data-kb-block=\"kb-adv-heading15251_e0e0d9-f0\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading15251_e0e0d9-f0 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading15251_e0e0d9-f0[data-kb-block=\"kb-adv-heading15251_e0e0d9-f0\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading15251_e0e0d9-f0 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading15251_e0e0d9-f0\">Example 1: Remove Year and Month folder<\/h3>\n\n\n\n<p><br>This example saves all Kadence Form uploads in \/wp-content\/uploads\/kadence_form\/ without adding the \/year\/month subfolders.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">add_filter('kadence_blocks_advanced_form_upload_directory', function ($param) {\n    $subfolder = '\/kadence_form';\n\n    $param['url']  = isset($param['baseurl']) ? $param['baseurl'] . $subfolder : $subfolder;\n    $param['path'] = isset($param['basedir']) ? $param['basedir'] . $subfolder : $subfolder;\n\n    $param['subdir'] = '';\n\n    return $param;\n}, 20, 1);<\/code><\/pre>\n\n\n\n<p><strong>Result:<\/strong><\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading15251_ff8377-1e, .wp-block-kadence-advancedheading.kt-adv-heading15251_ff8377-1e[data-kb-block=\"kb-adv-heading15251_ff8377-1e\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading15251_ff8377-1e mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading15251_ff8377-1e[data-kb-block=\"kb-adv-heading15251_ff8377-1e\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading15251_ff8377-1e img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading15251_ff8377-1e[data-kb-block=\"kb-adv-heading15251_ff8377-1e\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<p class=\"kt-adv-heading15251_ff8377-1e wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading15251_ff8377-1e\">Uploads go to: <code>\/wp-content\/uploads\/kadence_form\/file.pdf<\/code><\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading15251_cd8e86-06, .wp-block-kadence-advancedheading.kt-adv-heading15251_cd8e86-06[data-kb-block=\"kb-adv-heading15251_cd8e86-06\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading15251_cd8e86-06 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading15251_cd8e86-06[data-kb-block=\"kb-adv-heading15251_cd8e86-06\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading15251_cd8e86-06 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading15251_cd8e86-06[data-kb-block=\"kb-adv-heading15251_cd8e86-06\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<p class=\"kt-adv-heading15251_cd8e86-06 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading15251_cd8e86-06\">Instead of <code>\/wp-content\/uploads\/kadence_form\/2025\/10\/file.pdf<\/code><\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading15251_a088aa-e1, .wp-block-kadence-advancedheading.kt-adv-heading15251_a088aa-e1[data-kb-block=\"kb-adv-heading15251_a088aa-e1\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading15251_a088aa-e1 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading15251_a088aa-e1[data-kb-block=\"kb-adv-heading15251_a088aa-e1\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading15251_a088aa-e1 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading15251_a088aa-e1[data-kb-block=\"kb-adv-heading15251_a088aa-e1\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading15251_a088aa-e1 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading15251_a088aa-e1\">Example 2: Save uploads outside of the default uploads folder<\/h3>\n\n\n\n<p>This example saves Kadence Form uploads in a custom folder called \/form_uploads located at the root of your WordPress site (same level as wp-config.php).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">add_filter('kadence_blocks_advanced_form_upload_directory', function ($param) {\n    $custom_dir = ABSPATH . 'form_uploads';\n    $custom_url = home_url('\/form_uploads');\n\n    wp_mkdir_p($custom_dir);\n\n    $param['path']    = $custom_dir;\n    $param['url']     = $custom_url;\n    $param['subdir']  = '';\n    $param['basedir'] = $custom_dir;\n    $param['baseurl'] = $custom_url;\n\n    return $param;\n}, 20, 1);<\/code><\/pre>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading15251_855276-2f, .wp-block-kadence-advancedheading.kt-adv-heading15251_855276-2f[data-kb-block=\"kb-adv-heading15251_855276-2f\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading15251_855276-2f mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading15251_855276-2f[data-kb-block=\"kb-adv-heading15251_855276-2f\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading15251_855276-2f img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading15251_855276-2f[data-kb-block=\"kb-adv-heading15251_855276-2f\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<p class=\"kt-adv-heading15251_855276-2f wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading15251_855276-2f\"><strong>Result:<\/strong><br>Uploads go to: <code>\/form_uploads\/file.pdf<\/code><\/p>\n\n\n\n<p>and can be accessed at: <code>https:\/\/example.com\/form_uploads\/file.pdf<\/code><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>By default, files uploaded through Kadence Blocks Advanced Form are stored in the WordPress uploads directory under: These files are also organized into year and month subfolders, such as: In some cases, you may want to store form uploads in a different location. For example, you might want them all in one single folder, outside&#8230;<\/p>\n","protected":false},"author":116562,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"doc_category":[420],"doc_tag":[],"knowledge_base":[7],"class_list":["post-15251","docs","type-docs","status-publish","hentry","doc_category-blocks-advanced","knowledge_base-kadence-blocks"],"year_month":"2026-04","word_count":381,"total_views":"1320","reactions":{"happy":"2","normal":"0","sad":"1"},"author_info":{"display_name":"Bonn","author_link":"https:\/\/www.kadencewp.com\/help-center\/author\/bonnjoelelimanco\/"},"doc_category_info":[{"term_name":"Advanced","term_url":"https:\/\/www.kadencewp.com\/help-center\/knowledge-base\/kadence-blocks\/blocks-advanced\/"}],"doc_tag_info":[],"knowledge_base_info":[{"term_name":"Kadence Blocks","term_url":"https:\/\/www.kadencewp.com\/help-center\/knowledge-base\/kadence-blocks\/","term_slug":"kadence-blocks"}],"knowledge_base_slug":["kadence-blocks"],"taxonomy_info":{"doc_category":[{"value":420,"label":"Advanced"}],"knowledge_base":[{"value":7,"label":"Kadence Blocks"}]},"featured_image_src_large":false,"comment_info":0,"_links":{"self":[{"href":"https:\/\/www.kadencewp.com\/help-center\/wp-json\/wp\/v2\/docs\/15251","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kadencewp.com\/help-center\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www.kadencewp.com\/help-center\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.kadencewp.com\/help-center\/wp-json\/wp\/v2\/users\/116562"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kadencewp.com\/help-center\/wp-json\/wp\/v2\/comments?post=15251"}],"version-history":[{"count":2,"href":"https:\/\/www.kadencewp.com\/help-center\/wp-json\/wp\/v2\/docs\/15251\/revisions"}],"predecessor-version":[{"id":15253,"href":"https:\/\/www.kadencewp.com\/help-center\/wp-json\/wp\/v2\/docs\/15251\/revisions\/15253"}],"wp:attachment":[{"href":"https:\/\/www.kadencewp.com\/help-center\/wp-json\/wp\/v2\/media?parent=15251"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/www.kadencewp.com\/help-center\/wp-json\/wp\/v2\/doc_category?post=15251"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www.kadencewp.com\/help-center\/wp-json\/wp\/v2\/doc_tag?post=15251"},{"taxonomy":"knowledge_base","embeddable":true,"href":"https:\/\/www.kadencewp.com\/help-center\/wp-json\/wp\/v2\/knowledge_base?post=15251"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}