Skip to content
PluginFree on WordPress.org

Custom fields that live in a real database.

Mass Custom Fields stores each field group in its own indexed table instead of thousands of rows in wp_postmeta. As easy to use as the plugins you know, with typed values, fast queries and data you can export. You do not need to know SQL.

  • WP 6.6+
  • PHP 8.1+
  • MySQL 8.0+ / MariaDB 10.6+
Screenshot · Field group editor
The problem

No SQL needed. No wp_postmeta either.

  • One row per value: 20,000 products with 10 fields are 200,000 rows in the busiest table WordPress has.
  • Everything is text, so sorting and comparing prices, dates and stock is converted on every query.
  • No index per field, so a filter such as “price under 500 in Istanbul” has few ways to avoid scanning the table.
  • Data is scattered, so exporting, reporting or sharing it with another system takes extra work.
wp_postmetaDefault storage
post_idmeta_keymeta_value
101_price"1299.00"
101_stock"14"
101city"Istanbul"
101release_date"2026-03-01"
101_edit_lock"1718293441:1"
102_price"849.5"
102_stock"7"
102city"Ankara"
102release_date"15/04/2026"
103_price"12,50"
103_stock""
103city"izmir"
4+ rows per postEvery value is textNo per-field index
wp_wpmcf_fg_productMass Custom Fields
post_idBIGINTpriceDECIMAL(10,2)stockINTcityVARCHAR(80)release_dateDATE
1011299.0014Istanbul2026-03-01
102849.507Ankara2026-04-15
10312.500İzmir2026-05-02
1 row per postTyped columnsIndexed where you choose
Seven steps, no SQL

How it works

  1. 1

    Install the plugin

    Add Mass Custom Fields from Plugins › Add New Plugin and activate it. A short setup wizard opens once, and you can skip it.

  2. 2

    Create a field group

    Name it “Product” and add the fields you need: price, release date, gallery and more.

  3. 3

    Choose where it appears

    Location rules decide which edit screens show the group: posts, pages, custom post types, users, terms, comments, widgets or options pages.

  4. 4

    A real table is created

    The group gets its own table, for example wp_wpmcf_fg_product. Each field becomes a column with the right type, such as a decimal number or a date.

  5. 5

    Mark the columns you filter by

    Defaults work without SQL knowledge. Indexes, unique values and generated values (UUID, hash, timestamp) sit in Advanced settings.

  6. 6

    Fill in the values

    Editors work on the normal edit screens. Values are linked to the post, user, term or comment by ID, and nothing is written to post meta.

  7. 7

    Print or query them

    Use a shortcode, a block, a page builder tag or a PHP function, and filter posts by field value with wpmcf_query.

Free version

Everything in the free version

  • Real tables

    One table per field group, one column per field, in the free plugin.

  • 30+ field types

    Including repeater, relationship, map, image, file and group, with validation and conditional logic.

  • Location rules

    Posts, pages, custom post types, users, terms, comments, widgets and options pages.

  • Post types, taxonomies, options pages

    Create them without code.

  • Global Data and Variables

    Site-wide values such as a phone number, printed with {{ glb.phone }}. Variables never run PHP.

  • Safe schema changes

    Renames keep data, risky type changes keep a backup column, and Table health shows drift.

  • Output and developer API

    Shortcodes, PHP functions, blocks, Block Bindings, REST API and read-only WPGraphQL fields.

  • Page builder tags

    Dynamic tags for Elementor Pro, Bricks, Divi 4, Breakdance and Oxygen Classic, plus an Elementor Field widget.

  • Migration and export

    Migrate from ACF, JSON import and export, local JSON for version control and WP-CLI.

Progressive depth

Simple on top. Unlimited underneath.

Pick a label and a type, and you're done. Open Advanced settings when you want control over the column type, length, charset, collation and indexes, or generated values like UUID, hash and timestamp.

It won't scare a beginner. It won't limit an expert.

Field group · Product1 of 5 fields
LabelPriceTypeNumber
name: price
Column typeDECIMALLength10,2
CharsetNot used for numbers
IndexesINDEXUNIQUE
Auto valueNoneUUIDHashTimestamp
wp_wpmcf_fg_productColumns
post_idBIGINT
priceDECIMAL(10,2)
stockINT
cityVARCHAR(80)
release_dateDATE
The field you just made is now a real column.
Toggle Advanced settings to see the collapsed and open states.
PRO

Turn your data into thousands of SEO pages.

Take a dataset, for example 81 cities × 20 services, design one page template and get a page per row, each with its own URL, title and meta description. Pages are served from your data without creating a post for each, and you can convert them into real posts.

  1. DataCSV · table · rows
  2. Master template/dentist/{{ src.city }}
  3. AI (optional)your own key
  4. Thousands of URLsone per row
  5. Sitemapsitemap-pseo.xml
/dentist/izmirDentist in İzmir
/dentist/ankaraDentist in Ankara
/dentist/istanbulDentist in Istanbul
Source
Where rows come from: a CSV, a Google Sheets link, or your own posts, terms and WooCommerce products.
Task
One generation job: source, URL and title patterns, and page template.
Template
One page template renders every generated page.
Sitemap and SEO plugins
Generated pages get sitemap entries and work with Yoast SEO, Rank Math and All in One SEO.
  • Preview pages and see an estimated page count before you generate
  • Background generation in batches, with status and log
  • Pages follow your data when it changes
BUSINESS

Compare anything with anything.

Comparison pages pair items from your data and build a page for each comparison. Business also adds scheduled sync, several data sources per task, and multilingual generated pages with WPML or Polylang.

phones_aA
iPhone 16
Pixel 9
Xperia 1 VI
phones_bB
Galaxy S25
iPhone 16
OnePlus 13
iPhone 16 vs Galaxy S25/iphone-16-vs-galaxy-s25
Pixel 9 vs Galaxy S25/pixel-9-vs-galaxy-s25
Pixel 9 vs iPhone 16/pixel-9-vs-iphone-16
Xperia 1 VI vs OnePlus 13/xperia-1-vi-vs-oneplus-13
Every item in A paired with every item in B. Identical pairs are skipped.

Try programmatic SEO on your own data.

Start 14-day free trial14 days, no card required
PRO

AI with your own key

You write a brief and the AI fills the template fields of each page from its data row. Requests go from your server straight to your provider, with no extra WPMass subscription or credits.

OpenAIYour API key
AnthropicYour API key
Google GeminiYour API key
  • Review, edit or regenerate the results
  • Unchanged pages are not billed again
  • Keys are stored encrypted
  • Rate limits can be set
PRO

Generated pages today, real posts when you decide

  • Convert to posts

    Turn generated pages into regular posts when you want to edit them one by one.

  • Pre-flight first

    See the pages, estimated size and time, and how many URLs change before you start.

  • Old URLs redirect

    Old URLs redirect with a 301 to the new posts.

Plans

Start free. Grow when you need to.

Licenses and checkout are handled by Freemius. Pricing is shown at checkout.

Free

Real tables, 30+ field types and the full builder.

Sites
Unlimited
Generated pages
—
Programmatic SEO tasks
—
Support
WordPress.org forum
Download free
Show all features
  • Core fields, post types, taxonomies, options pages
  • ACF migration, JSON, WP-CLI, blocks, builder tags
  • Advanced fields: gallery, flexible content, clone
  • Admin columns, quick and bulk edit, CSV export
  • Front-end forms
  • WooCommerce order fields
  • Data tables: CSV, Google Sheets, content feeds
  • Elementor widgets and display conditions
  • Programmatic SEO and sitemap
  • AI content with your own key
  • Conversion of generated pages to posts
  • Comparison pages
  • Scheduled sync
  • Several data sources per task
  • Multilingual (WPML, Polylang)

Pro

Most popular

Programmatic SEO, forms, data tables and AI for one site.

Sites
1
Generated pages
5,000
Programmatic SEO tasks
5
Support
Email
Contact us
Show all features
  • Core fields, post types, taxonomies, options pages
  • ACF migration, JSON, WP-CLI, blocks, builder tags
  • Advanced fields: gallery, flexible content, clone
  • Admin columns, quick and bulk edit, CSV export
  • Front-end forms
  • WooCommerce order fields
  • Data tables: CSV, Google Sheets, content feeds
  • Elementor widgets and display conditions
  • Programmatic SEO and sitemap
  • AI content with your own key
  • Conversion of generated pages to posts
  • Comparison pages
  • Scheduled sync
  • Several data sources per task
  • Multilingual (WPML, Polylang)

Business

Comparison pages, scheduled sync and multilingual for five sites.

Sites
5
Generated pages
50,000
Programmatic SEO tasks
50
Support
Email
Contact us
Show all features
  • Core fields, post types, taxonomies, options pages
  • ACF migration, JSON, WP-CLI, blocks, builder tags
  • Advanced fields: gallery, flexible content, clone
  • Admin columns, quick and bulk edit, CSV export
  • Front-end forms
  • WooCommerce order fields
  • Data tables: CSV, Google Sheets, content feeds
  • Elementor widgets and display conditions
  • Programmatic SEO and sitemap
  • AI content with your own key
  • Conversion of generated pages to posts
  • Comparison pages
  • Scheduled sync
  • Several data sources per task
  • Multilingual (WPML, Polylang)

Agency

Unlimited sites, pages and tasks for client work.

Sites
Unlimited
Generated pages
Unlimited
Programmatic SEO tasks
Unlimited
Support
Email
Contact us
Show all features
  • Core fields, post types, taxonomies, options pages
  • ACF migration, JSON, WP-CLI, blocks, builder tags
  • Advanced fields: gallery, flexible content, clone
  • Admin columns, quick and bulk edit, CSV export
  • Front-end forms
  • WooCommerce order fields
  • Data tables: CSV, Google Sheets, content feeds
  • Elementor widgets and display conditions
  • Programmatic SEO and sitemap
  • AI content with your own key
  • Conversion of generated pages to posts
  • Comparison pages
  • Scheduled sync
  • Several data sources per task
  • Multilingual (WPML, Polylang)

14-day free trial, no card required. Refunds within 14 days of purchase.

What happens if your license expires?

When a paid license expires, generation, sync, AI and editing of Pro features pause. Generated pages keep being served for a 14-day grace period; renew, or convert them to posts. A trial that ends has no grace period. Your data stays and your site never goes down.

Day 0License expires
Day 1 – 14 · grace periodVirtual pages stay live.
New generationSyncAI
RenewEverything resumes where it stopped.
or
Convert to postsSame URLs, now regular WordPress posts.

Why you can trust it

  • Your data stays yours

    It lives in your database. WPMass does not receive your field data.

  • It does not break your site

    A failing module is logged in Settings › Health and the page keeps rendering.

  • A license ending is not an emergency

    Your data stays, and generated pages keep serving for a 14-day grace period after a paid license expires.

  • Bring your own AI key

    AI requests go from your server straight to the provider you choose.

Under the hood

For developers

Query by field value

Pass wpmcf_query to WP_Query and filter or order by columns with real indexes.

Read the reference
query.phpphp
$query = new WP_Query( [
    'post_type'      => 'listing',
    'posts_per_page' => 12,
    'wpmcf_query'    => [
        'relation' => 'AND',
        [ 'field' => 'listing.price', 'compare' => '<=', 'value' => 500 ],
        [ 'field' => 'listing.features', 'compare' => 'CONTAINS', 'value' => 'garden' ],
    ],
    'orderby'        => [ 'wpmcf:listing.price' => 'ASC', 'date' => 'DESC' ],
] );

How it compares — honestly

Other plugins can also use custom tables in some form. In Mass Custom Fields, tables are the default storage, not an add-on or an optional mode, in the free plugin.

ACF / ACF ProMeta BoxPodsJetEngineMass Custom Fields
Default storageMeta rows (postmeta and similar)Meta rows; custom tables via an extensionMeta rows; table options existMeta rows; custom content types use own tablesOne table per field group, typed columns
Per-field indexes and column typesNot applicable to meta rowsCheck vendor siteCheck vendor siteCheck vendor siteYes, in the free plugin
Repeater and relationshipRepeater in ACF ProCheck vendor siteCheck vendor siteCheck vendor siteFree
Gallery, flexible content, cloneACF ProCheck vendor siteCheck vendor siteCheck vendor sitePro
Options pagesACF ProCheck vendor siteFree
Query by field valuemeta_querymeta_query or custom table queriesCheck vendor siteCheck vendor sitewpmcf_query on typed, indexable columns
Programmatic SEO from a datasetNot a plugin featureNot a plugin featureNot a plugin featureNot a plugin featurePro
AI contentCheck vendor siteCheck vendor siteCheck vendor siteCheck vendor sitePro, your own key
Front-end formsACF Pro (acf_form)Via extensionCheck vendor siteCheck vendor sitePro
Migration from ACF—Check vendor siteCheck vendor siteCheck vendor siteBuilt in, free

Questions

Where are field values stored?
Do I need to know SQL?
Can I switch from ACF?
What are the requirements?
What happens if I deactivate or delete the plugin?
What happens when my Pro license ends?

Release notes

Full changelog
  1. 1.0.0

    First release of Mass Custom Fields.

Your data, in real tables. Starting today.

Download freeTry Pro free for 14 days14-day trial, no card required