Skip to content

Import listings with WP All Import

MyListing includes its own WP All Import integration. Choose a specific MyListing listing type when creating the import, then map standard WordPress data and the type’s custom fields in their respective sections.

  • Back up the site, especially before updating existing listings.
  • Install and activate the free edition of WP All Import. It supports the main MyListing workflow covered in this guide: uploading a source file, creating or updating listings, and mapping listing fields, taxonomies, files, locations, dates, relationships, and settings.
  • MyListing 2.6 and newer include the MyListing integration; do not install the old standalone MyListing add-on. If that legacy add-on is active, MyListing deliberately disables its built-in integration.
  • Create and save the destination listing type before building the import. Only fields belonging to that type appear in MyListing Add-On.
  • Prepare one source record per listing and include a permanent unique value, such as an ID from the source system.
  • Import a few records first and inspect them before running the complete file.

Your source column names do not need to match MyListing’s field keys. WP All Import maps each source value to its destination.

Address geocoding and reverse geocoding call the provider configured under Theme Tools → Map Services. Google Maps and Mapbox require their own credentials and may incur provider charges; Nominatim is an external service subject to its usage policy. Manual coordinates make no geocoding request.

  1. Go to All Import → New Import and upload the source file.
  2. In the import-type selector, choose Listing Type: your listing type. For a type whose plural name is “Places,” select Listing Type: Places.
  3. Continue and confirm that WP All Import detected the expected records.
  4. On the drag-and-drop screen, map each source value to the appropriate section.

Map the listing title and description under Title & Content. The preset Title and Description fields are intentionally omitted from MyListing Add-On because WP All Import already handles them there.

Use WP All Import’s other standard sections for the slug, author, post status, publication date, and similar WordPress properties.

Map Categories, Tags, Regions, and custom listing taxonomies under Taxonomies, Categories, Tags. Taxonomy fields are also omitted from MyListing Add-On. When possible, match existing terms by a stable slug and review WP All Import’s separator and hierarchy settings before allowing it to create new terms.

For a taxonomy field configured with MyListing’s Hierarchy template, the integration keeps the selected leaf terms instead of also assigning every imported ancestor.

The normal listing import can assign existing terms or create term names as needed. Importing taxonomy records as a separate data set is only necessary when you also need to populate metadata belonging to those terms.

Open MyListing Add-On. The controls shown here are generated from the fields currently assigned to the selected listing type.

Field type Accepted source value
Text, Email, URL, Password, Textarea, and WP Editor Map the source value directly. The preset Video URL also appears as a URL field.
Number Use an unformatted numeric value such as 12500 or 49.95; do not include currency symbols or thousands separators.
Date Use an unambiguous date such as 2026-10-15 or 2026-10-15 18:30:00. MyListing normalizes it to the field’s Date or Date & Time format.
Select and Radio Buttons Use the stored option value shown in parentheses when it differs from the label. Mapping rules can translate source values.
Multiselect and Checkboxes Put the option values in one source field and separate them with the delimiter shown beside the field. The default is a comma and can be changed per field.
File Upload, Logo, Cover Image, and Gallery Images Supply a public URL or a file source WP All Import can read. Multiple-file fields use the configured delimiter.
Location Choose address geocoding, coordinate geocoding, or manual address and coordinates.
Recurring Date Map start/end values and optional recurrence details, or use a serialized value from a compatible MyListing export.
Work Hours Map each weekday’s opening and closing values plus a timezone, or import compatible serialized data.
Social Networks Map URLs into the individual network inputs, or import compatible serialized data.
Related Listings Use an existing listing’s title, slug, or WordPress ID. Multi-value relationships use the configured delimiter.
Product Select and Product Multiselect Use an existing product’s title, slug, SKU, or WordPress ID. Product Multiselect uses the configured delimiter.
Form Heading No value is imported; it appears only as a visual divider in the add-listing form and importer.

The current MyListing Add-On does not render General Repeater fields, including the preset Restaurant Menu, or custom fields created with the Video URL type. Existing legacy Text Editor fields are not rendered either. Because no control is rendered, the importer never parses or saves those fields through the built-in integration.

The preset Video URL field with the job_video_url key is supported because it is implemented as a regular URL field. For other unsupported field types, use a tested custom import integration rather than guessing their stored serialized structure.

Map listing files inside MyListing Add-On, not WP All Import’s standard Images section. MyListing disables that standard section for listing imports so that the correct listing fields receive the attachment URLs.

Each file field can accept a public URL or a source WP All Import can access. Leave its download option enabled when the file should be copied into the Media Library. For a multiple-file field, place all values in one source field and use the delimiter configured beside that field. You can also map matching lists of attachment titles, descriptions, captions, and alt text; each list uses the same delimiter and is matched by position.

Keep different files under unique filenames. Attachment matching can otherwise cause a previously uploaded file to be reused when different source URLs end with the same filename.

Every Location field offers three methods:

  1. Geocode by address maps a complete address and uses the active map service to retrieve latitude and longitude.
  2. Geocode by coordinates maps latitude and longitude and reverse-geocodes them to retrieve the address.
  3. Enter manually (no geocoding) maps the address, latitude, and longitude without calling a map service.

The first two methods require a working geocoder under Theme Tools → Map Services. Geocoding runs from the server, so Google or Mapbox credentials must permit those requests. If you temporarily relax an API restriction for an import, restore it immediately afterward. Large imports can exhaust a provider quota or incur usage charges.

Use the manual method when your source already contains reliable coordinates. It avoids API requests and is better suited to large imports.

When using Geocode by coordinates during an update, MyListing reuses the existing address if both coordinates and the saved address are unchanged. Custom code can force reverse geocoding by returning true from mylisting/wp-all-import/force-geocode, but that increases provider requests.

For one location, map the address, latitude, and longitude into the three manual inputs. A multiple-location value exported by MyListing can instead be mapped into the manual Address input as a PHP-serialized array whose entries use this structure:

Address,latitude,longitude

The importer reads the final two comma-separated parts as coordinates, so commas may remain inside the address. Reuse the serialized value produced by WP All Export rather than editing its string-length markers manually.

The normal method provides From and To inputs for each weekday.

  • Standard range: 9:00am to 5:00pm.
  • Split hours: use corresponding comma-separated ranges, such as 9:00am, 1:00pm and 12:00pm, 5:00pm.
  • Open all day: enter open in From.
  • Closed all day: enter closed in From.
  • By appointment only: enter appointment in From.

Enter a valid PHP timezone identifier such as Europe/Tirane or America/New_York. A missing or invalid timezone falls back to the WordPress site timezone and is noted in the import log.

Use the Serialized method only with a compatible work-hours value exported from MyListing.

The manual method requires both a start and end date for each entry. Fields configured to allow recurrence also show Repeat every and Repeat until.

Use intervals such as 10 days, 1 week, 2 weeks, 6 months, or 1 year. Leave the recurrence inputs empty for a one-time date. Any supplied end or repeat-until value must be a valid date; invalid entries are skipped and written to the import log.

If the listing field allows multiple dates, use Add a date to create another mapping row. Use the Serialized method only when migrating the value from a compatible MyListing export. See Export recurring dates with WP All Export.

Import social networks, relationships, and products

Section titled “Import social networks, relationships, and products”

For Social Networks, the normal method shows a separate input for every network MyListing currently supports. Map each URL to the appropriate network. The serialized method is intended for a value exported from another MyListing site.

Related listings and products must already exist when their identifiers are resolved. Import those records first, then map:

  • A related listing by exact title, slug, or WordPress ID.
  • A product or variation by exact title, slug, SKU, or WordPress ID.

For a multi-value field, separate identifiers with that field’s configured delimiter. A single-value field uses the first match. Matching is exact, and the database query takes the first record when identifiers are not unique. The related-listing resolver also accepts ordinary WordPress posts for backward compatibility, although listing IDs or unique listing slugs are the safest inputs.

Unresolved related-listing and product identifiers are omitted without a warning in the WP All Import log. Check these fields on the imported listings rather than relying on the log to report missing relationships.

At the bottom of MyListing Add-On, the Listing Settings section provides these optional values:

  • Listing Expiry Date accepts a recognizable date. If a new listing has no valid mapped expiry, MyListing calculates its default expiry.
  • Paid Listing Package ID expects a user-package record ID from Users → Paid Listing Packages, not the WooCommerce product ID.
  • Is listing verified? accepts the mapped Yes/No choice. Direct values yes, claimed, verified, 1, and true are treated as verified.
  • Priority uses 0 for Normal, 1 for Featured, or 2 for Promoted.

The assigned paid-listing package is processed first. Explicit expiry, verification, and priority values in the same import can therefore override values applied by that package.

  1. Continue to Import Settings and set a stable unique identifier. Do not use content that can change, such as an address or description.
  2. Choose whether the import creates new listings, updates matched listings, or handles records missing from the source.
  3. When updating, review Choose which data to update carefully. MyListing fields are stored as custom fields, so allow custom-field updates or select the specific MyListing meta fields that should change.
  4. Confirm the import and run the small test batch.

Re-run an existing job from All Import → Manage Imports when updating the same source. Creating a separate import does not inherit the original job’s record matching.

After the test run:

  1. Open several records under Listings and check their type, title, status, taxonomies, fields, files, location, and any package assignment.
  2. View the listings on the front end and test the relevant Explore filters and ordering options.
  3. Review the WP All Import log for invalid dates, numbers, timezones, failed downloads, or geocoding errors. Missing related listings and products are not logged, so inspect those fields directly.
  4. Restore any API-key restrictions changed for geocoding.

If imported values do not appear in indexed Explore filters, rebuild the type under Listing Types → edit a type → Search Forms → Search Index. If Preview Card caching is enabled and cards remain stale, regenerate that cache under Theme Tools → Performance → Preview Cards → Caching.

WP All Import Pro is not required for the core workflow in this guide. Consider it only when an import needs a remote or existing server file, a separate taxonomy-record import, the Function Editor, skipping unchanged records, or advanced missing-record and removal actions. Automatic Scheduling is a separate paid service for managed recurring imports.

MyListing disables WP All Import’s standard Images section for listing imports in every edition. Always map listing images and files through MyListing Add-On.

NEXTExport recurring dates →