Skip to main content
Login Join
Snippet · PHP

Switch Upload Directory for a Custom Post Type

Shared by Yusuf mudagal · May 2, 2026 · @upload_dir

31 views
Back to Snippets

Stores uploads made while editing portfolio posts in a dedicated uploads subdirectory.

add_filter( 'upload_dir', 'wpfolks_portfolio_upload_directory' );

function wpfolks_portfolio_upload_directory( $dirs ) {
    if ( 'portfolio' !== get_post_type() ) {
        return $dirs;
    }

    $dirs['subdir'] = '/portfolio' . $dirs['subdir'];
    $dirs['path']   = $dirs['basedir'] . $dirs['subdir'];
    $dirs['url']    = $dirs['baseurl'] . $dirs['subdir'];

    return $dirs;
}
Know a different way to do this? Add your approach as a variation so folks can compare them side by side.
Submit a variation

0 comments