The Complete ACF Addons Guide for WordPress Developers (2026)

May 18, 2026 · 12 min read ·
ACF Addons
The Complete ACF Addons Guide for WordPress Developers (2026)

Every developer who has shipped more than a handful of ACF-powered sites has hit the same wall: a client needs something the built-in field types can’t handle. A map without a Google Maps API key. An icon picker. A responsive range control for a CSS custom property. At that point you have three options — hack something together with a Text field, build a custom field type from scratch, or find an addon that already solves the problem.

This guide covers all three paths, with the emphasis on option two and three, because that’s where most working developers spend their time.

What ACF Addons Actually Are

An ACF addon is any plugin that hooks into ACF’s public PHP API to extend its behavior. The two most common extension points are:

  • Custom field types — new entries in the field type picker, each backed by a PHP class that extends acf_field
  • UI/behavior enhancements — modifications to the field group editor, post edit screen, or frontend output without adding a new field type

The ecosystem splits cleanly into free and premium. The WordPress.org plugin directory lists hundreds of ACF-adjacent plugins. The Awesome ACF directory catalogs 240+ extensions across four categories. Many plugins follow a freemium model: a capable free tier on WordPress.org, with a Pro license unlocking advanced field types or integrations.

Worth noting for 2026: ACF itself (now back under WP Engine after the Automattic dispute of late 2024) continues shipping new native field types — Icon Picker landed in 6.4 — so check ACF’s own changelog before reaching for an addon. That said, the platform’s native library still has obvious gaps, especially for UI-heavy or specialized use cases.


Top ACF Addons by Category

UI/UX Enhancements

ACF Extended (ACFE) is the most popular addon in this space with 90,000+ active installs and a win at the 2025 ACF survey for “most popular addon.” Beyond new field types, it adds a Block Types UI, Options Pages UI, and a Performance Mode (Ultra/Hybrid Engines) that reduces the database overhead ACF produces on high-meta-count posts. If you’re building anything with a serious field count — hundreds of meta rows per post — ACFE’s performance layer alone justifies the install.

Other solid UI plugins:

  • ACF Quick Edit Fields (30,000+ installs) — brings ACF values into WP admin list view Quick Edit and Bulk Edit panels. Massive time-saver on content-heavy sites.
  • ACF Columns — stack fields side-by-side in the post editor to reduce vertical scroll on groups with many fields. Requires ACF Pro.
  • ACF Hide Layout — adds an eye icon to Flexible Content layouts so editors can hide a layout without deleting it.
  • Flexible Content Extended — replaces the standard layout picker with a modal showing image previews of each layout. Makes Flexible Content actually usable for non-technical editors.

Custom Field Types

This is the busiest part of the ecosystem. Some long-standing standalones:

  • ACF: Font Awesome Field (100,000+ installs) — visual Font Awesome icon picker supporting FA 4.x, 5.x, and 6.x
  • ACF Table Field (60,000+ installs) — drag-and-drop rows and columns; a clean alternative to Repeater for tabular data
  • ACF Photo Gallery Field (60,000+ installs) — gallery management with Gutenberg and Elementor support
  • Image Aspect Ratio Crop (20,000+ installs) — adds cropping to the native Image field with defined aspect ratios or pixel dimensions
  • ACF: Gravity Forms Add-on (30,000+ installs) — field type for selecting and linking Gravity Forms

For more specialized types, see the Extra Fields for ACF deep-dive below.

Performance

ACF’s database footprint is a known issue. Each field value generates multiple rows in wp_postmeta (value + reference key). On posts with 50+ fields this adds up.

  • ACFE Performance Mode — Ultra and Hybrid engines restructure how ACF writes to the database. The only addon that attacks this at the storage level.
  • ACF Custom Database Tables (by Hookturn) — moves ACF data into dedicated tables, enabling faster queries and cleaner schema design. Premium.
  • ACF Simple Cache — JSON-level caching for field group configuration. Low-effort, measurable gains.

Gutenberg / Block Editor

ACF Blocks (Pro) is the first-party answer here, and ACF 6.6’s V3 implementation — with iframe-isolated previews and a dedicated expanded editing panel — finally closes the style-bleed gap that made earlier versions painful in practice. V3 is opt-in per block via "acf": { "blockVersion": 3 } in block.json.

For teams not on ACF Pro:

  • Advanced Views (2,000+ installs) — display posts and ACF fields using Twig/Blade templates without Pro
  • Page builders like Kadence Blocks, GenerateBlocks, and Bricks Builder all have native ACF dynamic field support built in

WooCommerce

ACF’s location rules natively support Post Type is equal to product, so attaching fields to products is straightforward. ACF 6.4+ also supports HPOS (High-Performance Order Storage), which matters if your shop uses the new order tables.

For richer WooCommerce integration: Advanced Product Fields for WooCommerce (by Studio Wombat) mirrors ACF’s admin UX and adds price-modifier options per field, which ACF itself doesn’t support natively.


Deep Dive: Extra Fields for ACF

Extra Fields for ACF is the most comprehensive custom field type collection in the ecosystem right now. It adds 30+ field types to ACF — 17 in the free version, 13 more in Pro — and manages them through a Settings page at Settings > Extra Fields for ACF where each type can be individually enabled or disabled (disabled types load zero CSS/JS).

The plugin is freemium via Freemius. The free tier from WordPress.org requires no account. Pro licenses:

PlanAnnualLifetimeSites
Single Site$19/yr$29 one-time1
5 Sites$49/yr$79 one-time5
Unlimited$99/yr$149 one-timeUnlimited

Free Field Types (17)

Highlights from the free tier:

  • Icon Picker — Font Awesome Free visual picker with search; returns a class string like fas fa-home
  • Unit Control — combined numeric + unit selector (px, %, em, rem, vw, vh); returns { value, unit } as JSON
  • Gradient Picker — drag-and-drop colour stops, outputs a ready-to-use CSS gradient string
  • Responsive Range — three range sliders (Desktop / Tablet / Mobile) in one field; returns { desktop, tablet, mobile }
  • Table — editable grid with dynamic rows/columns, plus get_table() and the_table() template helpers
  • Country Selector — 249 countries via ISO 3166-1 dropdown, no API key, returns ISO alpha-2 code
  • Phone Number — international dial code + number with flag icons via intl-tel-input, returns E.164 format
  • Markdown — editor with toolbar and live preview via EasyMDE; stores raw Markdown
  • Address — structured street / city / state / postal / country returned as a PHP array
  • Advanced Link — enhanced link picker returning { url, title, target, type, post_id } — useful anywhere get_permalink() plus metadata is needed together

Pro Field Types (13)

Pro adds the more complex implementations:

  • OpenStreetMap — Leaflet.js map with Nominatim geocoding autocomplete; single or multiple markers; no Google API key, GDPR-compliant
  • Image Hotspot — click to place responsive pins (% coordinates) on an image with label, description, link, and icon per pin
  • Tags Input — chip input with taxonomy sync, whitelist, drag-to-reorder, and min/max validation via Tagify
  • Code Editor — CodeMirror multi-language editor supporting HTML, CSS, JS, PHP, Python, Shell, SQL, YAML, and plain text
  • DateTime Picker — combined date + time via Flatpickr with 12h/24h toggle, minute step, and min/max constraints
  • oEmbed — paste any YouTube/Vimeo/Spotify/etc. URL; shows a live admin preview; returns { url, provider, title, thumbnail, html, width, height }
  • Stripe Payment — Stripe Payment Element inside an ACF form; supports Apple Pay + Google Pay; returns { payment_intent_id, status, amount, currency, paid_at }
  • Image Selector — visual image-thumbnail radio/checkbox grid for structured choices
  • Hidden Input — read-only field with dynamic token values: {{user_id}}, {{post_id}}, {{date}}, {{time}}

All 30 types work inside Repeater, Group, Flexible Content, Clone, and Options Pages. Data is stored in standard wp_postmeta — no custom tables — so get_field() and the_field() work exactly as expected.


Registering and Using Custom Field Types Programmatically

Whether you’re building your own addon or need to understand what Extra Fields is doing under the hood, the ACF field type API is worth knowing.

Every custom field type is a PHP class that extends acf_field. The minimum viable class:

<?php
if ( ! defined( 'ABSPATH' ) ) exit;

class My_ACF_Field_Custom extends acf_field {

    public function __construct() {
        $this->name     = 'custom_field_type'; // unique slug
        $this->label    = __( 'Custom Field Type', 'my-plugin' );
        $this->category = 'basic'; // basic, content, choice, relational, jquery, layout
        $this->defaults = array(
            'my_option' => 'default_value',
        );
        parent::__construct();
    }

    public function render_field( $field ) {
        printf(
            '<input type="text" id="%s" name="%s" value="%s" />',
            esc_attr( $field['id'] ),
            esc_attr( $field['name'] ),
            esc_attr( $field['value'] )
        );
    }

    public function validate_value( $valid, $value, $field, $input ) {
        if ( $field['required'] && empty( $value ) ) {
            return __( 'This field is required.', 'my-plugin' );
        }
        return $valid;
    }

    public function format_value( $value, $post_id, $field ) {
        return sanitize_text_field( $value );
    }

    public function update_value( $value, $post_id, $field ) {
        return sanitize_text_field( $value );
    }
}

Register it on acf/init (preferred since ACF 5.2.7):

add_action( 'acf/init', function() {
    acf_register_field_type( new My_ACF_Field_Custom() );
} );

The key methods to know:

MethodWhen it runs
render_field()Outputs the admin HTML the editor sees
render_field_settings()Adds configurable options in the field group editor
input_admin_enqueue_scripts()Enqueues CSS/JS for the field’s admin UI
validate_value()Runs before save; return true or an error string
format_value()What get_field() returns to templates
update_value()Filters the value before it hits the database
get_rest_schema()Defines the REST API JSON schema for this type

ACF ships an official starter template at github.com/AdvancedCustomFields/acf-example-field-type with a rename script (npm run rename) that rewires all the class names and file paths in one step.

For teams that prefer object-oriented field registration without subclassing, the vinkla/extended-acf library is worth a look — it wraps the ACF registration API in a fluent PHP interface.


Compatibility Notes: ACF Free vs Pro, WordPress 6.x, Block Editor

ACF Free vs ACF Pro

The free version covers most field types for content-heavy projects. The six Pro-only features — Repeater, ACF Blocks, Flexible Content, Options Pages, Gallery, and Clone — are the ones that require a paid license. Most third-party addons, including Extra Fields for ACF, work with both Free and Pro.

ACF Pro pricing in 2026: Personal at $49/year (1 site), Freelancer at $149/year (10 sites), Agency at $249/year (unlimited). Dev/staging sites don’t count toward limits.

WordPress 6.x Compatibility

  • ACF 6.6+ requires WordPress 6.2 minimum for Blocks V3 features
  • ACF 6.5 removed dynamic class properties, making it compatible with PHP 8.2+
  • Extra Fields for ACF is tested up to WordPress 6.9 with PHP 7.4–8.3

Block Editor

ACF Blocks V3 (introduced in ACF 6.6) is the current best practice for custom blocks. The iframe-based preview isolation means your block template renders with actual theme styles rather than bleeding WP admin CSS. Enable it per block with "acf": { "blockVersion": 3 } in your block.json.

Important: ACF Blocks don’t work with the standalone Gutenberg plugin — they depend on APIs that are experimental in Gutenberg but stable in WordPress core. Stick to WordPress core’s bundled editor if you’re using ACF Blocks.

Full Site Editing (FSE) works fine with ACF. Fields can be assigned to FSE-powered theme templates, and ACF Blocks render correctly inside the site editor.


When to Build Your Own Addon vs. Use Existing Ones

Build your own when:

  • The field’s data structure is domain-specific. A booking slot field, a structured pricing table, or an ingredient list for a recipe plugin — these won’t map cleanly to any generic addon.
  • You need the field inside a distributable plugin. Bundling a dependency on a third-party addon creates a fragile distribution chain.
  • Custom REST schema matters. If you’re serving a headless frontend, get_rest_schema() lets you define exactly what shape the REST API returns. Generic addons may not expose this cleanly for your use case.

Use an existing addon when:

  • The use case is generic. An icon picker, a table field, a star rating — these are solved problems with thousands of active installs and battle-tested code.
  • You’re under time pressure. Evaluating an addon takes an hour. Building a custom field type well takes at least a day.
  • The addon is actively maintained. Check the last update date and support forum response rate before committing.

The middle path is worth knowing about: fork or extend an existing field type class rather than building from scratch. ACF’s PHP class structure makes this straightforward — extend the existing class, call parent::__construct(), and override only the methods that differ.


The ACF Addon Ecosystem Direction in 2026

A few trends worth tracking:

ACF blocks are maturing. V3’s iframe isolation was the last major UX complaint. Inline editing, announced for ACF 6.7, would close the remaining gap with native Gutenberg blocks — you’d be able to edit field values directly in the block preview rather than in the sidebar. When that ships, ACF Blocks become a genuinely competitive alternative to React-authored blocks for most project types.

The headless use case is growing. WPGraphQL for ACF (4,000+ installs) is increasingly standard in decoupled WordPress stacks. As Next.js and Faust.js adoption grows among agencies, so does demand for ACF addons that expose clean GraphQL types. Custom field types with a get_rest_schema() implementation are better positioned here.

Performance pressure is real. On large sites, ACF’s wp_postmeta footprint is a genuine problem. ACFE’s Performance Mode and ACF Custom Database Tables address this in different ways. Expect more addons in this space as enterprise WordPress adoption grows.

The addon ecosystem is consolidating around ACF 6.x APIs. Plugins that haven’t updated for the acf/init hook, V3 blocks, or PHP 8.2 compatibility are showing their age. When evaluating any addon, check that it’s tested against a current WordPress release and doesn’t rely on deprecated ACF hooks.


Get Started with Extra Fields for ACF

If you’re looking for the fastest way to extend ACF’s field library without building from scratch, Extra Fields for ACF covers the most common gaps — icons, tables, responsive controls, maps, markdown, and more — in a single plugin with zero configuration overhead.

Install from WordPress.org for the free tier:
https://wordpress.org/plugins/extra-fields-for-acf/

Documentation and installation guide:
https://acfaddons.com/docs/extra-fields-for-acf/getting-started/installation/