Title: WP Options Importer
Author: Matthew Boynes
Published: <strong>April 21, 2014</strong>
Last modified: March 3, 2023

---

Search plugins

This plugin **hasn’t been tested with the latest 3 major releases of WordPress**.
It may no longer be maintained or supported and may have compatibility issues when
used with more recent versions of WordPress.

![](https://s.w.org/plugins/geopattern-icon/options-importer.svg)

# WP Options Importer

 By [Matthew Boynes](https://profiles.wordpress.org/mboynes/)

[Download](https://downloads.wordpress.org/plugin/options-importer.7.zip)

 * [Details](https://wordpress.org/plugins/options-importer/#description)
 * [Reviews](https://wordpress.org/plugins/options-importer/#reviews)
 *  [Installation](https://wordpress.org/plugins/options-importer/#installation)
 * [Development](https://wordpress.org/plugins/options-importer/#developers)

 [Support](https://wordpress.org/support/plugin/options-importer/)

## Description

WordPress can presently export all of its content via WXR, and then import that

through the WordPress Importer plugin. That process includes all posts, terms, menus,
comments, and users, but it doesn’t touch options. In addition to general settings,
options can include widget configurations, plugin settings, theme settings, and 
lots more. This can be very time-consuming to migrate manually. WP Options Importer
aims to fill that void and save us all a lot of time.

WP Options Importer allows you to export all options to a JSON file, and then
 you
can selectively import them into another WordPress installation. The import process
is very transparent, and it even shows you what data you’ll be importing. Lastly,
it gives you the option to override existing settings or to skip options that already
exist.

## Screenshots

 * [[
 * “Options” is seamlessly integrated as a choice when exporting.
 * [[
 * “Options” is seamlessly included in the list of importers.
 * [[
 * Once you upload the JSON file, you’re presented with a choice of which options
   you want to import and if you want to override existing options.
 * [[
 * If you choose to import “Specific Options”, you’re provided with a list of everything
   in the JSON file. Check the box next to those you want included, or uncheck those
   which you don’t want to include.

## Installation

 1. Upload the plugin to the `/wp-content/plugins/` directory
 2. Activate the plugin through the ‘Plugins’ menu in WordPress
 3. Navigate to **Tools → Export** and choose “Settings” to export options,
     or navigate
    to **Tools → Import** and choose “Settings” to import options.

## FAQ

### When I import the default options, [some plugin]’s settings don’t transfer. What gives?

The default options are core options, or those which a plugin has indicated
 are
safe to import. You can choose “Specific Options” when importing to manually select
those which you need to import.

### I’m the author of [some plugin]. Can you add my settings to the default list?

No, but you can! We provide a filter, `options_import_allowlist` for you to add

your options to the default list. Here’s an example one might add to their plugin:

    ```
    function my_awesome_plugin_options( $options ) {
        $options[] = 'my_awesome_plugin';
        return $options;
    }
    add_filter( 'options_import_allowlist', 'my_awesome_plugin_options' );
    ```

Similarly, if you don’t want someone to ever import an option, you can add it
 to
the denylist using the `options_import_denylist` filter. As above, it would look
something like this:

    ```
    function my_awesome_plugin_denylist_options( $options ) {
        $options[] = 'my_awesome_plugin_edit_lock';
        return $options;
    }
    add_filter( 'options_import_denylist', 'my_awesome_plugin_denylist_options' );
    ```

### I operate a multisite network and some options should *never* be able to be exported or imported by the site owner. Can I prevent that?

You have two options for both exports and imports.

**Imports**

First, you can use the `options_import_denylist` filter
 and add any options to 
that array (which is empty by default). If your users have access to theme or plugin
code, this isn’t 100% safe, because they could override your denylist using the 
same filter. In those cases, there’s an emergency ripcord where you can disable 
options from ever being imported. To use this, define the constant `WP_OPTION_IMPORT_DENYLIST_REGEX`(
you’ll probably want to do this in an mu-plugin) and set it to a regular expression.
Anything matching this expression will be skipped. For example:

    ```
    define( 'WP_OPTION_IMPORT_DENYLIST_REGEX', '/^(home|siteurl)$/' );
    ```

**Exports**

Exactly the same as with imports. The filter is `options_export_denylist`,
 and 
the constant is `WP_OPTION_EXPORT_DENYLIST_REGEX`.

## Reviews

![](https://secure.gravatar.com/avatar/6a4829d3ad3f7372f54baa118e0fc3a63cc44660cc74c30c1e9e1d0286901f1f?
s=60&d=retro&r=g)

### 󠀁[Best options exporter/importer](https://wordpress.org/support/topic/best-options-exporter-importer/)󠁿

 [wong](https://profiles.wordpress.org/wongpk/) October 6, 2020

Works well with the latest 5.5.1, import all necessary information, also able to
choose which options to be import.

![](https://secure.gravatar.com/avatar/b28a2717cfafacaa9ef7e40ced04d27c9e0c17875c67b605b415f4c9f85dbaea?
s=60&d=retro&r=g)

### 󠀁[Best options setup ever](https://wordpress.org/support/topic/best-options-setup-ever/)󠁿

 [Jon](https://profiles.wordpress.org/jonhopstra/) October 1, 2020

Best ever! Old but still works great!

![](https://secure.gravatar.com/avatar/315520617aa32d56b8d230143192676790a7eead6af108a8385dfc45bd4d8a53?
s=60&d=retro&r=g)

### 󠀁[Still working in 2019 for WP 5.1](https://wordpress.org/support/topic/still-working-in-2019-for-wp-5-1/)󠁿

 [mkonji](https://profiles.wordpress.org/mkonji/) August 9, 2019

Still working great – thanks for this!

![](https://secure.gravatar.com/avatar/d5b5a5df8b4349f5099d481e4dc9d2f09fb038135614b022d58e4d1535e81479?
s=60&d=retro&r=g)

### 󠀁[Excellent](https://wordpress.org/support/topic/excellent-4423/)󠁿

 [shaeirving1](https://profiles.wordpress.org/shaeirving1/) February 8, 2017

Excellent plugin, has helped our business in many ways

 [ Read all 9 reviews ](https://wordpress.org/support/plugin/options-importer/reviews/)

## Contributors & Developers

“WP Options Importer” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Matthew Boynes ](https://profiles.wordpress.org/mboynes/)
 *   [ Alley ](https://profiles.wordpress.org/alleyinteractive/)

[Translate “WP Options Importer” into your language.](https://translate.wordpress.org/projects/wp-plugins/options-importer)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/options-importer/),
check out the [SVN repository](https://plugins.svn.wordpress.org/options-importer/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/options-importer/)
by [RSS](https://plugins.trac.wordpress.org/log/options-importer/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 7

 * SECURITY: Add proper escaping to all echo functions
 * SECURITY: Add nonce checks
 * SECURITY: Sanitize option name values during import
 * ENHANCEMENT: Use wp_remote_get instead of file_get_contents
 * INFO: Deprecate the use of blacklist and whitlelist in favor of denylist and 
   allowlist
 * INFO: Move class into new file
 * INFO: Enable phpcs against the WordPress standard

#### 6

 * Remove multisite site-specific exclusions

#### 5

 * Added WP_OPTION_EXPORT_BLACKLIST_REGEX
 * Breaking: Changed the `options_export_exclude` filter to `options_export_blacklist`
   to be consistent with imports.

#### 4

 * After file upload, store data in transient and immediately delete the file so
   it doesn’t linger on the server.

#### 3

 * Added blacklists
 * Fixing bug where plugin wouldn’t show in multisite when WP Importer wasn’t active.
 * Misc bug fixes

#### 2

 * Spit & polish
 * Improved error handling
 * Added file cleanup on completion
 * Misc bug fixes

#### 1

 * Brand new!

## Meta

 *  Version **7**
 *  Last updated **3 years ago**
 *  Active installations **7,000+**
 *  WordPress version ** 3.8 or higher **
 *  Tested up to **6.1.10**
 * Tags
 * [export](https://wordpress.org/plugins/tags/export/)[exporter](https://wordpress.org/plugins/tags/exporter/)
   [import](https://wordpress.org/plugins/tags/import/)[importer](https://wordpress.org/plugins/tags/importer/)
   [options](https://wordpress.org/plugins/tags/options/)
 *  [Advanced View](https://wordpress.org/plugins/options-importer/advanced/)

## Ratings

 4.9 out of 5 stars.

 *  [  8 5-star reviews     ](https://wordpress.org/support/plugin/options-importer/reviews/?filter=5)
 *  [  1 4-star review     ](https://wordpress.org/support/plugin/options-importer/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/options-importer/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/options-importer/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/options-importer/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/options-importer/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/options-importer/reviews/)

## Contributors

 *   [ Matthew Boynes ](https://profiles.wordpress.org/mboynes/)
 *   [ Alley ](https://profiles.wordpress.org/alleyinteractive/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/options-importer/)