Convert NextGen Galleries to WordPress Galleries

Hey there! I'm currently working on a CLI tool to deploy WordPress apps to DigitalOcean. Check it out! It's free and open source.

I was using NextGen Gallery for quite some time here on my blog, and it was all going well until WordPress introduced its own gallery shortcode, custom post types and more, which NextGen never adapted to. After migrating the blog a couple of times I was tired of all the conflicts, so I stopped using galleries, disable the plugin and lived happily even after, until…

Until Jetpack Carousel came along and because it’s so cool an sexy, it made me wanna use galleries again, so I (finally) decided to write a script to migrate my old NextGen Galleries to native WordPress galleries, so they can be used with Jetpack Carousel, or any other carousel or lightbox plugins, which:

  • Don’t create their own shortcode
  • Don’t create their own file structure
  • Don’t create their own database tables

Unfortunately NextGen Gallery does all the above, making it quite tricky to escape, or “lock yourself out.” My script started as a simple Gist on GitHub, but finally made it into its own repo, which I called Escape NextGen Gallery.

It’s far from a complete migration plugin, but it worked for moving my galleries over, and finally getting rid of the database tables and file structure I always hated. Your setup might differ from mine, so you’ll probably have to fine-tune that script, and if you do, don’t hesitate to submit a pull request or fork if you wish.

About the author

Konstantin Kovshenin

WordPress Core Contributor, ex-Automattician, public speaker and consultant, enjoying life in Moscow. I blog about tech, WordPress and DevOps.


  • Converted to the native gallery from ngg awhile ago which wasn’t difficult. Didn’t know this plugin existed so i’ll add it to my old post as it should save time for users who have multiple galleries created with ngg.

    I guess it would be a good idea to make a full database backup before using this plugin considering it removes the ngg tables.

    Did you know you can also use some of the Jetpack modules like the Carousel without having to use the entire plugin and connect to a account?

    • Hi Brad, thanks for your comment! Yeah the instructions clearly state “backup first” and it doesn’t really delete the database tables and files, that’s up to the user to decide, but ultimately it would.

      Did you know you can also use some of the Jetpack modules like the Carousel without having to use the entire plugin and connect to a account?

      I’ve seen a couple of tweets about that not long ago, but I’m not entirely sure why I (or anybody else) would want to do that. I’d rather have a account and rely on the Jetpack team to update and maintain the Carousel plug (and everything else), than relying on WPBeginner to update theirs.

      Besides, I’m using much more of Jetpack than the Carousel :)

  • This is a neat plugin and allows one to move ahead with the times. It is sad that Next Gen has not updated the way the plugin works to make integration easier (with less conflicts).

  • Great plugin. I wish such a thing existed a few years ago when I need to port some galleries over. I ended up deleting a bunch because I didn’t have time to move them all :(