Recommended Hosts

Recommended Hosts

While many hosts work well with WP All Import, if you are looking for a specific recommendation Liquid Web and Nexcess work exceptionally well with WP All Import and we've partnered with them to offer a discount for new users. To take advantage of this discount, use the coupon code WPALLIMPORT35 for 35% off your first 3mo when signing up.

Managed Hosting Plans

Nexcess offers two products that we recommend, one tuned for general purpose WordPress sites, and another specifically tuned for WooCommerce sites. Both plans start at $19/mo and work great with WP All Import.

Nexcess Managed WordPress Hosting

Nexcess Managed WooCommerce Hosting

VPS, Cloud, and Dedicated Servers

If you need more horsepower, flexibility, or control over your hosting environment, then you probably want to go with one of Liquid Web's hosting options. They have a variety of options to choose from, with VPS hosting starting at $39/mo, cloud hosting at $51/mo, and dedicated servers at $140/mo.

Liquid Web VPS Hosting

Liquid Web Cloud Hosting

Liquid Web Dedicated Servers

Which one is best for me?

If you aren't sure, the managed hosting options from Nexcess will probably serve your needs very well. If you have a large site or need more flexibility than a managed hosting plan can offer, then you should get in touch with Liquid Web to discuss their VPS, cloud, and dedicated hosting options.

Managed Hosting vs VPS Hosting

Managed Hosting: The hosting company has many sites from different customers all running on the same server inside the same operating system, competing for the same resources. Think of it like sharing a house with roommates. Everyone shares the same kitchen, living room, and bathroom. If the same person spends four hours a day showering or fills the refrigerator with their groceries, you』re going to have a problem. Like landlords, some shared hosts are better about mitigating these issues, but you are still sharing a bathroom with many other people.

VPS & Cloud Hosting: Sites from different customers are still running on the same server, but on separate operating systems, in virtual computers. Another piece of software called a hypervisor makes sure that each operating system always has the same amount of resources available to it. Think of it like living in an apartment complex. You still have a lot of neighbors technically living in the same building, but no matter how many people are taking a shower at the same time, yours is always available.

Dedicated Hosting: You are renting out an entire server and are not sharing it with anyone. This is overkill for the vast majority of sites, but if you need complete control over your hosting environment, then renting a dedicated server is a good option.

Imports & Server Resources

Imports require a lot of server resources, especially if you are importing a lot of data or have a large database. Hosting review sites cover speed, reliability, and customer service but rarely let you know which hosts will throttle your processing power or limit your SQL queries.

Some hosts will pack many customers into small, underpowered, servers. Sites that consume a lot of resources will eat up all of the available processing power, leaving none for you and your import. Alternatively, some hosts will proactively kill your import process to protect other people』s sites.

We』ve tested a lot of hosts and out of all of them, Liquid Web and Nexcess are the two we』ve had the best experiences with. Both are fast, reliable, have well-reviewed 24/7 customer support, and work great with WP All Import.

Overview

Overview

The Advanced Custom Fields add-on for WP All Import makes it possible to import to ACF5/ACF Pro, or ACF4.

To import to Advanced Custom Fields, you must have one of the Advanced Custom Fields plugins linked to in the previous sentence installed, and the Advanced Custom Fields add-on for WP All Import installed. You can download the Advanced Custom Fields add-on for WP All Import from the customer portal.

Importing to Advanced Custom Fields is the same as importing to normal Custom Fields, except for repeater fields.

Here』s how it works:

Create your field group and add all of your fields via Advanced Custom Fields.Make sure our ACF Add-On is active.Start a new import – during Step 3, you』ll see the ACF fields associated with the post type that you』re importing:

ACF Example

Image Fields

Image Fields

Importing Single Images

Image fields allow the user to specify a single image URL or file path.

Rapid Add-On will automatically place the specified image in the Media Library and pass the ID of the media to the registered import function.

These fields should all be defined in your add-on's constructor.

$this->add_on->add_field( 'property_featured_img', 'Property Featured Image', 'image' );

Add-On Single Image Field

Your add-on』s import method will be passed the image data as an array. The ID of the image will be passed as the 「attachment_id」 array key.

Here』s how to set the Featured Image/Post Thumbnail to the specified image.

This example assumes the field slug specified in add_field is 「property_featured_img」.

public function import( $post_id, $data, $import_options ) {
$attachment_id = $data['property_featured_img']['attachment_id'];
set_post_thumbnail( $post_id, $attachment_id );
}

Importing Multiple Images

You can add entire image sections, with all of the settings and features that the default image section has, using the import_images() function.

$this->add_on->import_images( 'property_images', 'Property Images', 'images', [ $this, 'property_images' ]);

Add-On Multiple Images

This will call the property_images() method every time an image is imported. There you can process the image references as needed.

public function property_images( $post_id, $attachment_id, $image_filepath, $import_options ) {

// Retrieve previously stored image references.
$urls = get_post_meta($post_id, 'property_gallery', true);

// Add the attachment ID to the list as our example requires.
$urls[] = $attachment_id;

// Create a comma delimited list for our example field.
$new_urls = implode(',', $urls);

// Save the updated list of attachment IDs.
update_post_meta( $post_id, 'property_gallery', $new_urls );

}

Some themes allow users to upload files like PDFs. You can enable another section, identical to the default image section, except that it will allow any file type to be imported and attached to the post.

$this->add_on->import_files( 'property_attachments', 'Property Attachments', [ $this, 'property_attachments' ] );

Related

Add-On Structure

Text Fields

Radio Fields

Nested Fields

Server Configuration

Server Configuration

If your server can successfully complete an import then it is properly configured. We have guides on import speed, terminated imports, and file upload errors.

If your server cannot successfully complete an import then you should read our troubleshooting guide.

To learn about web hosts that we recommend, please see our recommended hosts page.

Server Requirements

There are no server hardware requirements for WP All Import. If you are maxing out your server』s available resources during the import process, upgrading to a more powerful server will help to increase your import speed. If you are not maxing out your server』s available resources then you will probably not benefit from upgrading to a more powerful server.

Generally speaking, if your server can run WordPress then it can run WP All Import. Your server will need the following software packages installed:

PHP 7.0 or greaterMySQL 5.5 or greatercURLlibxmlSimpleXMLxmlreaderxmlwriterZipArchive

Recommended Server Settings

The following settings are recommendations to help avoid server errors. If you aren』t running in to any errors during the import process then you don』t need to worry about these settings.

Maximum Input Variables (PHP): This is set in php.ini with max_input_vars. It determines the maximum numbers of input variables that PHP will allow. In our experience 6000 is sufficient, but you may wish to raise this limit if you are importing a large amount of product attributes.

Maximum Upload File Size (PHP): This is set in php.ini with upload_max_filesize. It determines the maximum file size that your server will allow to be uploaded. This value must be larger than the size of the file you wish to upload to WP All Import.

Maximum Post Size (PHP): This is set in php.ini with post_max_size. It determines the maximum file size allowed to be used in PHP process. This should be set higher than upload_max_filesize.

Memory Limit (PHP): This is set in php.ini with memory_limit. It determines how much memory a script is able to allocate. This should be set higher than post_max_size.

Maximum Execution Time (PHP): This is set in php.ini with max_execution_time. It determines how long a process is allowed to run before it』s terminated. You can ask your host to increase the limit, but first you should lower the 『Records per iteration』 setting in WP All Import.

FCGID Timeouts (Apache): This is set in httpd.conf with FcgidIOTimeout. It determines how long mod_fcgid will wait while trying to perform a read or write. It should be set as high as your host will allow. In our experience 90 seconds is sufficient.

Repeater Fields

Repeater Fields

Our ACF add-on for WP All Import provides 3 modes for importing to repeater fields. The option to use depends on the type of file you are using, as well as the way your data is structured.

Note: Importing data from several records into a repeater field for a single post is not supported. All of the data for a repeater field must be present in the same record.

So for example, while the data in the 「Sizes」 column in this file can be imported into a repeater field, due to the data being in the same record:

ACF Data Structure

The data in the 「Sizes」 column in this next file will not be imported as desired, since the data is spread out across several records:

Incorrect Data Structure

Depending on the import settings, either a separate post would be created for each row, or only the 「Large」 value will be present in the repeater field for 「Test Post」 (since the prior values that were imported would be overwritten).

Fixed Repeater Mode

Use Fixed Repeater Mode when each piece of your repeating data is stored in separate columns or elements. For example, if you have a repeater field containing an image, and your CSV file has 5 columns – image_1, image_2, image_3, etc:

Fixed Repeater File

Then you should use Fixed Repeater Mode. Manually add 5 rows to the repeater by clicking Add Row:

Fixed Repeater Add Row

And then drag & drop image_1 to the first row, image_2 to the second row, etc.

Check the 「Ignore blank fields」 box if some of the records in your file don』t contain values for all 5 images. For example, if image_3 and onwards are blank for a certain record, WP All Import will only add 2 rows to the repeater for that record.

Variable Repeater Mode (XML)

Use this option if your repeating data is stored in XML format as 「sibling」 elements, for example:

image1.jpg
image2.jpg
image3.jpg
image4.jpg
image5.jpg

Dragging & dropping won』t generate the correct XPath expressions when using Variable Repeater Mode (XML). You need to modify your XPath expressions as per WP All Import's FOREACH syntax.
In this video 「Variable Repeater Mode (XML)」 is used.
Variable Repeater Mode (CSV)
If your repeating data is stored in a single column in your CSV file, and is separated by a separator character, use this option.
For example, if you have a repeater field containing ingredients (Name and Measure – i.e. 1/2 cup is the measure and butter is the name), and the names & measures are stored in separate columns in your CSV file:
Variable Repeater CSV

Then use this option. Since this repeater data is comma separated, change the 「Separator Character」 setting from a pipe character to a comma, and drag & drop the Names & Measures columns into the appropriate sub-fields in the repeater field. The end result should look like this:

Variable Repeater Mode

When the data is imported, the first item in the Names column will be associated with the first item in the Measures column, the 2nd item in the Names column with the 2nd in the Measures column, etc.