Advanced Custom Fields


Use the Advanced Custom Fields plugin to take full control of your WordPress edit screens & custom field data.

Add fields on demand. Our field builder allows you to quickly and easily add fields to WP edit screens with only the click of a few buttons!

Add them anywhere. Fields can be added all over WP including posts, users, taxonomy terms, media, comments and even custom options pages!

Show them everywhere. Load and display your custom field values in any theme template file with our hassle free developer friendly functions!

Version 5 Early Access

Advanced Custom Fields version 5 is scheduled for release in mid 2018. This major update introduces new fields, new locations and new features!

To help provide the most seamless update possible, we have included a simple Early Access opt-in feature to enable the update now. Learn more


  • Simple & Intuitive
  • Powerful Functions
  • Over 30 Field Types
  • Extensive Documentation
  • Millions of Users



The Advanced Custom Fields plugin is also available in a professional version which includes more fields, more functionality, and more flexibility! Learn more


  • Simple & Intuitive

  • Made for developers

  • All about fields


From your WordPress dashboard

  1. Visit Plugins > Add New
  2. Search for “Advanced Custom Fields”
  3. Activate Advanced Custom Fields from your Plugins page
  4. Click on the new menu item “Custom Fields” and create your first Custom Field Group!
  5. Read the documentation to get started


Installation Instructions

From your WordPress dashboard

  1. Visit Plugins > Add New
  2. Search for “Advanced Custom Fields”
  3. Activate Advanced Custom Fields from your Plugins page
  4. Click on the new menu item “Custom Fields” and create your first Custom Field Group!
  5. Read the documentation to get started
What kind of support do you provide?

Help Desk. Support is currently provided via our email help desk. Questions are generally answered within 24 hours, with the exception of weekends and holidays. We answer questions related to ACF, it’s usage and provide minor customisation guidance. We cannot guarantee support for questions which include custom theme code, or 3rd party plugin conflicts & compatibility. Open a Support Ticket

Support Forums. Our Community Forums provide a great resource for searching and finding previously answered and asked support questions. You may create a new thread on these forums, however, it is not guaranteed that you will receive an answer from our support team. This is more of an area for developers to talk to one another, post ideas, plugins and provide basic help. View the Support Forum


One of the best plugins available for extending WordPress

I use this plugin for many of my client’s sites when I build custom themes for them. It allows me to create custom content fields for my clients that gives them control of the content without letting them break the design. The pro version also allows repeater fields.
Adding advanced custom fields to templates is easy because of their great documentation.

Must have plugin

Thank you so much for developing this awesome plugin! It’s a must have for a lot development situations. Now with Elementor supporting it, it’s even better!

Лучший плагин из всех, что я видел

Это действительно настолько функциональный и простой в использовании плагин, что я не могу передать этого словами. Я очень редко пишу отзывы, но функционал меня просто поразил. Рекомендую))


Ingenious and easy! Thanks for the good work!

Read all 1,005 reviews

Contributors & Developers

“Advanced Custom Fields” is open source software. The following people have contributed to this plugin.




  • Core: Added Early Access for ACF 5
  • Core: Fixed PHP7 warnings
  • Language: Added Romanian translation – thanks to Corneliu Cîrlan


  • Core: Improved logic to better delete term meta during ‘delete_term’ action.
  • Core: Fixed bug causing potential conflict between user and post object cache names.
  • Language: Updated Italian translation – thanks to Ste Yeu


  • WYSIWYG field: Fixed JS error preventing TinyMCE from initialising.


  • Image field: Added nicer ‘Edit image’ view.
  • File field: Added nicer ‘Edit file’ view.


  • Google Map: Added new ‘acf/fields/google_map/api’ filter


  • Relationship field: Fixed bug preventing values from being selected in WP 4.5
  • Google Map field: Fixed bug preventing map to load within repeater field
  • Core: Fixed PHP error when loading ACF values on ‘The Events Calendar’ (plugin) page
  • Language: Updated Portuguese translation – thanks to Pedro Mendonca


  • Google Map field: Improved compatibility with 3rd party plugins including Google JS API
  • API: Improved get_ functions to load value from the current queried object (post, user, term)
  • Core: Added support for new WP 4.5 term edit page
  • Language: Updated Portuguese translation – thanks to Pedro Mendonca
  • Language: Added Welsh translation – thanks to Carl Morris
  • Language: Added Indonesian translation – thanks to Rio Bermano


  • Core: Fixed meta box title appearing on seamless field groups
  • Language: Updated Portuguese translation
  • Language: Updated Polish translation


  • Field group: Fixed disabled update button after saving with empty title
  • Core: Minor fixes and improvements
  • Language: Updated Portuguese translation
  • Language: Updated French translation
  • Language: Updated Polish translation
  • Language: Added Finnish translation


  • WYSIWYG field: Added compatibility for WP 4.3 filters
  • Core: Minor fixes and improvements
  • Language: Updated Polish translation – thanks to Maciej


  • Image field: Fixed UI bug when image has been removed via media library
  • Core: Minor fixes and improvements


  • Taxonomy field: Added compatibility for upcoming ‘term splitting’ in WP 4.2
  • Taxonomy field: Major improvement to save/load setting allowing for different values on multiple sub fields
  • Core: Minor fixes and improvements


  • Core: Fixed depreciated warnings


  • Core: Added compatibility for WP4 media grid
  • Relationship field: Fixed bug showing incorrect post type
  • Language: Added Slovak translations – Thanks to
  • Language: Added Serbo-Croatian translation – thanks to Borisa Djuraskovic
  • Language: Updating Persian translation – Thanks to Ghaem Omidi


  • Validation: Fixed disabled button issue in WP 3.9


  • WYSIWYG field: Fixed missing tinyMCE buttons in WP 3.9


  • Core: Improved efficiency and speed when saving values by removing ACF meta from the native WP postmeta box
  • Field Group: Fixed cache issue causing field settings to not update
  • WYSIWYG field: Added support for new tinymce 4 in WP 3.9
  • Number field: Fixed bug causing blank values to save as 0
  • Google Maps field: Fixed JS bug causing google maps to not render when Google library is already loaded
  • Validation: Fixed JS bug where hidden field groups’ fields were being validated


  • Textarea field: Added new rows setting
  • API: Added $format_value parameter to the get_fields function
  • Core: Improved conditional logic & tab JS performance
  • Core: Removed changelog announcement in plugins update list
  • Core: Fixed annoying wp is not defined JS error
  • Core: Added logic to load full or minified scripts using the SCRIPT_DEBUG constant
  • Core: Improved loading structure to better allow ACF functions within the functions.php file
  • Core: Fixed revisions bug causing sub field data to not restore
  • Core: Made use of WP datepicker UI
  • Field Group: Changed post location rule to show all post types
  • Field Group: Changed page location rule to show only page post type
  • Field Group: Added new filter for meta box priority acf/input/meta_box_priority
  • Language: Added missing translation support in multiple fields
  • Language: Added Hebrew translation – Thanks to Erez Lieberman
  • Language: Updating Czech translations – Thanks to webeescz


  • Post Object field: Fixed get_pages bug causing ‘pages’ to not appear
  • Page Link field: Fixed get_pages bug causing ‘pages’ to not appear
  • Tab field: Fixed JS bug causing multiple tab groups on page to render incorrectly
  • Language: Updated Russian translation – Thanks to Alex Torscho


  • Core: Updated styling to suit WP 3.8
  • Core: Added new logic to set ‘autoload’ to ‘off’ on all values saved to the wp_options table to help improve load speed
  • API: Added new logic to the $post_id parameter to accept an object of type post, user or taxonomy term
  • Tab field: Added compatibility with taxonomy term and user edit screens (table layout)
  • Tab field: Fixed JS bug causing incorrect tab to show when validation fails
  • Text field: Fixed bug causing append setting of ‘+50′ to appear as ’50’


  • Colour Picker field: Fixed JS bug preventing wpColourPicker from updating value correctly
  • Google Map field: Added new setting for initial zoom level
  • Relationship field: minor update to fix compatibility issue with Polylang plugin
  • Relationship field: Fixed bug causing filters / actions using $field[‘name’] to not fire correctly
  • API: Fixed bug with have_rows/has_sub_field function where looping through multiple posts each containing nested repeater fields would result in an endless loop
  • Export: Fixed bug causing exported XML fields to become corrupt due to line breaks
  • Core: Fixed bug where duplicating a field would cause conditional logic to appear blank
  • Core: Added Conditional Logic support to hide entire column of a repeater field where max_row is 1.
  • Core: Added new field group ‘hide on screen’ option for ‘permalink’ which hides the permalink URL and buttons below the post title


  • API: Fixed bug with has_sub_field and have_rows functions causing complicated nested loops to produce incorrect results
  • API: Fixed bug with get_fields function preventing values to be returned from options page and taxonomy terms
  • Core: Fixed bug causing some SQL LIKE statements to not work correctly on windows servers
  • Core: Removed __() wrappers from PHP export, as these did not work as expected
  • Core: Fixed bug with get_pages() causing sort order issue in child page location rule
  • Core: Added specific position to ACF menu item to reduce conflicts with 3rd party plugins
  • JS: Fixed bug where conditional logic rules did not save when added using a ‘+’ button above the last rule
  • Radio field: Fixed bug where ‘other’ would be selected when no value exists
  • WYSIWYG field: Added support for users with disabled visual editor setting
  • JS: Improved validation for fields that are hidden by a tab
  • Google maps field: Add refresh action when hidden / shown by a tab


  • Core: get_field can now be used within the functions.php file
  • Core: Added new Google maps field
  • Core: Added conditional logic support for sub fields – will also require an update to the repeater / flexible content field add-on to work
  • Core: Added required validation support for sub fields – will also require an update to the repeater / flexible content field add-on to work
  • API: Added new function have_rows()
  • API: Added new function the_row()
  • API: Fixed front-end form upload issues when editing a user –
  • API: Fixed front-end form bug where the wrong post_id is being passed to JS –
  • Export: wrapped title and instructions in () function –
  • Core: Filter out ACF fields from the native custom field dropdown – –
  • Revisions: Improved save functionality to detect post change when custom fields are edited –
  • Core: Add field group title for user edit screen –
  • Field group: Add ‘toggle all’ option to hide from screen –
  • Taxonomy field: Add new filter for wp_list_categories args –
  • Taxonomy field: Fixed JS bug causing attachment field groups to disappear due to incorrect AJAX location data –
  • WYSIWYG field: Fixed JS bug where formatting is removed when drag/drop it’s repeater row
  • Tab field: Corrected minor JS bugs with conditional logic –
  • Relationship field: Values now save correctly as an array of strings (for LIKE querying)
  • Post object field: Values now save correctly as an array of strings (for LIKE querying)
  • Image field: Added mime_type data to returned value
  • Field field: Added mime_type data to returned value
  • Core: Lots of minor improvements


  • Field group: Added ‘High (after title)’ position for a metabox –
  • Relationship field: Fixed bug with ‘exclude_from_search’ post types
  • Image / File field: Improved edit popup efficiency and fixed bug when ‘upload’ is last active mode –
  • JS: Added un compressed input.js file
  • JS: Fixed but with options page / taxonomy field –
  • Language: Updated Persian Translation – thanks to Ghaem Omidi


  • Taxonomy field: Fixed issue causing selected terms to appear as numbers –
  • Revisions: Fixed WP 3.6 revisions –
  • Relationship Field: Add new option for return_format
  • Location Rule – Add new rule for post status –
  • Location Rule: Add ‘super admin’ to users rule – thanks to Ryan Nielson –
  • Core: Fixed pre_save_post $post_id issue –
  • Core: Fix minor CSS but in media modal –
  • File field: Fix minor ‘strict standards’ warning –
  • Image field: Fix minor CSS issue –


  • IMPORTANT: ACF now requires a minimum WordPress version of 3.5.0
  • Full integration between attachments and custom fields!
  • Text field: Added new options for prepend, append, placeholder and character limit
  • Textarea field: Added new options for prepend, append, placeholder and character limit
  • Number field: Added new options for prepend, append and placeholder
  • Email field: Added new options for prepend, append and placeholder
  • Password field: Added new options for prepend, append and placeholder
  • Image field: fixed safari bug causing all images to appear small
  • Core: Improved save_lock functionality to prevent inifinite loops when creating a post on the fly
  • Core: Major JS improvements including .live changed to .on
  • Compatibility: Fixed WYSIWYG JS bug with Visual Composer plugin
  • Language: Added Persian Translation – thanks to Ghaem Omidi
  • Language: Updated German translation – thanks to Thomas Meyer
  • Language: Added Swedish translation – thanks to Mikael Jorhult

  • Select field: Revert choices logic –
  • CSS: Revert metabox CSS –
  • Core: Fixed save_post conflict with Shopp plugin –


  • Core: Fix issue with cache $found variable preventing values from being loaded
  • Select field: Improve choices textarea detection –
  • Language: Added Swedish translation –
  • Language: Updated Russian translation –


  • Language: Added Russian translation – Thanks to Alex Torscho
  • Core: Improved the save_post function to compare post_id and only run once.
  • Core: Improved cache handling
  • Number field: Fixed step size decimal bug
  • Radio button field: Add option for ‘other’ and to also update field choices
  • Image / File field: Updated JS to add multiple items to the correct sub field –
  • JS: Remove redundant return ajax value –
  • Add-ons page: fix JS issue –
  • Options Page: Fixed issue with load_value preventing the options page using default values –
  • AJAX: Fix chrome bug – untick category –
  • JS: Fixed multiple Internet Explorer issues


  • General: Improved load_value function to better handle false and default values
  • Number field: Added new options for min, max and step –
  • Radio field: Improved logic for selecting the value. Now works with 0, false, null and any other ’empty’ value –
  • Date picker field: Fixed PHP error –
  • Language: Added Portuguese translation –
  • Taxonomy: Updated JS to clear image / file and checkbox elements when a new category is added via AJAX –
  • Validation: Added logic to allow a field to bypass validation if it is part of a tab group which is hidden via conditional logic
  • API: Improved the acf_form function to better handle form attributes

  • Image field: Fixed JS error causing uploader to not work correctly
  • File field: Fixed JS error causing uploader to not work correctly
  • Gallery field: Fixed JS error causing uploader to not work correctly
  • General: Fixed JS error causing field groups to not appear when dynamically loaded


  • WYSIWYG Field: Fixed WYSIWYG the_content / shortcode issues –
  • Image field: Added option for library restriction –
  • File field: Added option for library restriction
  • File field: Field UI refresh
  • Checkbox field: Added horizontal option –
  • Image field: fixed UI bug when image is deleted in file system –
  • Validation: Added support for email field –
  • Validation: Added support for taxonomy field –
  • Language: Added Chinese Translation –
  • General: Added changelog message to update plugin screen
  • General: Lots of minor improvements


  • [Fixed] Page Link: Fixed errors produced by recent changes to post object field –


  • [Fixed] Relationship field: Fix global $post conflict issues –


  • [Added] Post Object field: Add filter to customise choices –
  • [Fixed] Relationship field: Fix error when used as grand child –
  • [Added] User field: Add sanitisation into update_value function to allow for array / object with ID attribute
  • [Added] Relationship field: Add sanitisation into update_value function to allow for array of post object to be saved
  • [Added] Post Object field: Add sanitisation into update_value function to allow for a post object or an array of post objects to be saved
  • [Added] Image field: Add sanitisation into update_value function to allow for a post object or an image array to be saved
  • [Added] File field: Add sanitisation into update_value function to allow for a post object or an file array to be saved
  • [Fixed] Revisions: Fix PHP warning if array value exists as custom field –
  • [Updated] Translation: Update French Translation –
  • [Fixed] General: Minor PHP errors fixed


  • [Fixed] Relationship field: Fix bug causing sub field to not load $field object / use elements option correctly
  • [Updated] Update German translations


  • [Added] Field group: location rules can now be grouped into AND / OR statements
  • [Added] Relationship field: Add option for filters (search / post_type)
  • [Added] Relationship field: Add option for elements (featured image / title / post_type)
  • [Added] Relationship field: Add post_id and field parameters to both ajax filter functions
  • [Added] Date Picker field: Add options for first_day
  • [Added] Date Picker field: Add text strings for translation
  • [Added] Select field: Add support for multiple default values
  • [Added] Checkbox field: Add support for multiple default values –
  • [Updated] Minor JS + CSS improvements
  • [Added] Added free Add-ons to the admin page
  • [Fixed] Fixed minor bugs


  • [Fixed] Fix bug when appending taxonomy terms –
  • [Fixed] Fix embed shortcode for WYSIWYG field –
  • [Fixed] Fix issues with loading numbers –
  • [Fixed] Fix bug with user field and format_value_for_api –
  • [Fixed] Fix capitalisation issue on field name –
  • [Fixed] Fix tabs not hiding from conditional logic –
  • [Updated] Update dir / path to allow for SSL –
  • [Updated] Updated relationship JS –


  • [Added] Add auto video filter to WYSIWYG value –
  • [Fixed] Fix Repeater + WYSIWYG loosing p tags on drag/drop –
  • [Fixed] Fix upgrade message appearing in iframe
  • [Fixed] Fix value sanitation –
  • [Added] Add JS field name validation –
  • [Fixed] Fix error when duplicating field group in WPML –
  • [Fixed] Fix pares_type issue. Maybe remove it? –


  • [Improved] Improving welcome message with download instructions
  • [Fixed] Text / Fix JS issue where metaboxes are not hiding –
  • [Fixed] Test / Fix lite mode issue causing category / user fields not to show
  • [Fixed] Sanitise field names –
  • [Fixed] Test / Fix conditional logic not working for multi-select –
  • [Fixed] Test / Fix field group duplication in WooCommerce category w SEO plugin –


  • [IMPORTANT] This update contains major changes to premium and custom field type Add-ons. Please read the Migrating from v3 to v4 guide
  • [Optimised] Optimise performance by removing heavy class structure and implementing light weight hooks & filters!
  • [Changed] Remove all Add-on code from the core plugin and separate into individual plugins with self hosted updates
  • [Added] Add field ‘Taxonomy’
  • [Added] Add field ‘User’
  • [Added] Add field ‘Email’
  • [Added] Add field ‘Password’
  • [Added] Add field group title validation
  • [Fixed] Fix issue where get_field_object returns the wrong field when using WPML
  • [Fixed] Fix duplicate functionality –
  • [Added] Add conditional statements to tab field –
  • [Fixed] Fix issue with Preview / Draft where preview would not save custom field data –
  • [Added] Add function get_field_groups()
  • [Added] Add function delete_field() –
  • [Added] Add get_sub_field_object function –
  • [Added] Add ‘Top Level’ option to page type location rule
  • [Fixed] Fix taxonomy location rule –
  • [Fixed] Fix tab field with conditional logic –
  • [Fixed] Revert back to original field_key idea. attractive field keys cause too many issues with import / export
  • [Added] Add message field –
  • [Removed] Removed the_content filter from WYSIWYG field

  • [Fixed] Fix PHP error in text / textarea fields


  • [Fixed] Fix bug preventing fields to load on user / taxonomy front-end form –
  • [Added] Added ‘acf/fields/wysiwyg/toolbars’ filter to customise WYSIWYG toolbars –
  • [Fixed] Fix acf_load_filters as they are not working! –
  • [Added] Clean up wp_options after term delete –
  • [Fixed] Fix location rule – category / taxonomy on new post –
  • [Added] Added ‘acf/create_field’ action for third party usage – docs to come soon
  • [Added] Add support for new media uploader in WP 3.5!
  • [Fixed] Fix conditional logic error –
  • [Fixed] Fix Uploader not working on taxonomy edit screens –
  • [Added] Add data cleanup after removing a repeater / flexible content row –

  • [Fixed] Fix fields not showing on attachment edit page in WP 3.5 –
  • [Fixed] Fix sub repeater css bug –
  • [Fixed] Fix issue where acf_form includes scripts twice –
  • [Fixed] Fix location rule bug with new shopp product –
  • [Fixed] Fix location rule bug with taxonomy / post_taxonomy –

  • [Fixed] Fix issues with location rules wrongly matching


  • [Fixed] Fix sub field default value –
  • [Added] Add filters for custom location rules –
  • [Fixed] Fix XML import to create unique field IDs –
  • [Fixed] Fix conditional logic with validation –
  • [Fixed] Fix repeater + relationship bug –

  • [Fixed] Fix bug with 3.5.6 not showing front-end form

  • [Fixed] Fix WYSIWYG webkit browser issues.

  • [Fixed] Fix bug causing field groups to not display on the options page.


  • [Fixed] Fix content editor double in webkit browser –
  • [Fixed] Fix bug with post format location rule not working –
  • [Fixed] Fix conditional logic with tabs –
  • [Fixed] Fix missing icons for conditional logic / menu in older WP
  • [Added] Add PHP fix for new lines in field key –


  • [Added] Add new Tab field
  • [Fixed] Improve WYSIWYG code for better compatibility
  • [Fixed] Fix PHP / AJAX error during database update for older versions
  • [Fixed] WYSIWYG insert attachment focus bug –
  • [Fixed] Fix JS comma issues for IE –
  • [Added] Add no cache to relationship field results –
  • [Added] Add retina support
  • [Fixed] Fix WYSIWYG validation for preview post –
  • [Fixed] Fix undefined index error in field’s conditional logic –
  • [Updated] Update post types in field options –
  • [Added] Add filters to relationship field results
  • [Added] Add file name bellow title in popup for selecting a file

  • [Fixed] Fix bug preventing options pages from appearing in the field group’s location rules


  • [Added] Add new filter for ACF settings –
  • [Updated] Updated field keys to look nicer. eg field_12
  • [Added] Update admin_head to use hooks / enque all scripts / styles
  • [Added] Add duplicate function for flexible content layouts
  • [Fixed] Fix $post_id bug –
  • [Fixed] Fix WYSIWYG JS issue –
  • [Fixed] Fix Gallery PHP error –
  • [Added] Add compatibility for Shopp categories –
  • [Fixed] Fix “Parent Page” location rule –
  • [Fixed] Fix options page backwards compatibility –
  • [Fixed] Fix update_field for content –
  • [Added] Add new filter for acf_defaults! –
  • [Fixed] Fix gallery detail update after edit –
  • [Fixed] Fix front end uploading issue –

  • Minor bug fixes for 3.5.3


  • [Updated] Update / overhaul flexible content field UI
  • [Added] Add Show / Hide for flexible content layouts
  • [Added] Add column width for flexible content –
  • [Added] Add instructions for flexible content sub fields
  • [Added] Add new parameter to get_field to allow for no formatting –
  • [Fixed] Fix compatibility issue with post type switcher plugin –
  • [Added] Add new location rules for “Front Page” “Post Page” –
  • [Fixed] Fix flexible content + repeater row limit bug –
  • [Added] Add filter “acf_load_value” for values –
  • [Fixed] Fix choices backslash issue –
  • [Updated] acf_options_page_title now overrides the menu and title. If your field groups are not showing after update, please re-save them to update the location rules.
  • [Updated] Update location rules to show all post types in page / page_parent / post
  • [Added] Change all “pre_save_field” functions to “acf_save_field” hooks
  • [Improved] Improve general CSS / JS


  • Security update


  • [Added] Add Conditional logic for fields (toggle fields are select, checkbox, radio and true / false)
  • [Added] More hooks + filters – acf_options_page_title, acf_load_field, acf_update_value –
  • [Removed] Remove public param from post types list –
  • [Added] Add field group headings into the acf_form function
  • [Updated] Update button design to match WP 3.5
  • [Fixed] Test / Fix XML export issue –
  • [Added] Add more options to the “hide on screen” –
  • [Added] Add compatibility for Tabify plugin –
  • [Added] Add compatibility for Duplicate Post plugin
  • [Added] Add new params to acf_form function –
  • [Updated] Increase date picker range to 100
  • [Fixed] WYSIWYG loses formatting when its row gets reordered (in a repeater / flexible content field)
  • [Fixed] Fix has_sub_field break issue –
  • [Fixed] Fix Textarea / Text encoding bugs –
  • [Added] Add publish status for field groups –
  • [Updated] General tidy up & improvement of HTML / CSS / Javascript


  • [Fixed] Fix missing title of PHP registered field groups on the media edit page
  • [Added] Add revision support
  • [Added] Allow save draft to bypass validation
  • [Updated] Update Czech translation
  • [Fixed] Fix XML export issue with line break –
  • [Fixed] Fix export to XML abspath issue –
  • Update location rules for post_type –
  • Add “revisions” to list of hide-able options
  • [Fixed] Fix bug with custom post_id param in acf_form –
  • [Fixed] Fix bug in has_sub_field function where new values are not loaded for different posts if the field name is the same –
  • [Updated] Allow get_field to use field_key or field_name
  • [Fixed] Fix update_field bug with nested repeaters
  • [Updated] Update German translation files – thanks to Martin Lettner


  • [Fixed] Fix PHP registered field groups not showing via AJAX –
  • [Added] Add new return value for file { file object
  • [Fixed] Test / Fix save_post priority with WPML + events + shopp plugin
  • [Fixed] Fix bug where field groups don’t appear on shopp product edit screens
  • [Fixed] Fix bug with image field { selecting multiple images puts first image into the .row-clone tr –


  • [Fixed] Fix API functions for ‘user_$ID’ post ID parameter
  • [Added] Colour Picker Field: Default Value
  • [Added] Add custom save action for all saves –
  • [Updated] Update Dutch translations
  • [Updated] Update get_field_object function to allow for field_key / field_name + option to load_value


  • [Added] Save user fields into wp_usermeta
  • [Added] Add compatibility with media tags plugin –
  • [Added] Wysiwyg Field: Add Default value option
  • [Added] Number Field: Add Default value option
  • [Fixed] Validate relationship posts –
  • [Added] Allow “options” as post_id for get_fields –
  • [Added] Repeater Field: Add sub field width option
  • [Added] Repeater Field: Add sub field description option
  • [Updated] Repeater Field: Update UI design
  • [Fixed] Fix missing ajax event on page parent –
  • [Updated] Update French translation –


  • [Fixed] Fix validation rules for multiple select –
  • [Added] Add support for options page toggle open / close metabox
  • [Fixed] Fix special characters in registered options page –
  • [Updated] CSS tweak for relationship field –
  • [Fixed] Fix datepicker blank option bug –
  • [Added] Add new function get_field_object to API –
  • [Fixed] Fix field groups not showing for Shopp add new product –
  • [Fixed] Move outside of the doc.ready in input-ajax.js
  • [Fixed] Fix IE7 JS bug –
  • [Fixed] Fix relationship search – Only search title, not content
  • [Updated] Update function update_field to use field_key or field_name
  • [Added] Add field group screen option to show field keys (to use in save_field / update field)
  • [Added] Add actions on all save events (action is called “acf_save_post”, 1 param = $post_id)


  • [Added] Add basic support for WPML – duplicate field groups, pages and posts for each language without corrupting ACF data!
  • [Fixed] Fix date picker save null –
  • [Fixed] Fix colour picker save null –
  • [Fixed] Fix image object null result –
  • [Updated] Update Japanese translation –
  • [Added] WYSIWYG field option – disable “the_content” filter to allow for compatibility issues with plugins / themes –


  • [Added] Gallery field { auto add image on upload, new style to show already added images
  • [Fixed] Fix saving value issue with WP e-commerce
  • [Updated] Date picker field { new display format option (different from save format), UI overhaul
  • [Added] Add new field – Number
  • [Fixed] Test post object / select based fields for saving empty value –


  • [Added] Add new return value for image { image object
  • [Updated] Update Dutch translation (thanks to Derk Oosterveld –
  • [Updated] Update UI Styles
  • [Updated] Refresh settings page UI and fix exported PHP code indentation Styles
  • [Fixed] Fix post object hierarchy display bug –
  • [Fixed] Fix metabox position from high to core –
  • [Fixed] Fix flexible content field save layout with no fields –
  • [Fixed] Text / Fix field group limit –


  • [Fixed] Fix IE regex issue (thanks to Ben Heller –
  • [Added] Check for more translatable strings (thanks to Derk Oosterveld –
  • [Fixed] Fix location rule post category bug
  • [Updated] Added all post status to page / post location rules –
  • [Updated] Updated the page link field to rely on the post_object field
  • [Added] Add $post_id parameter to the [acf] shortcode


  • [Fixed] Fix location rule bug for taxonomy.


  • [Added] Added new API function: has_sub_field – replacement for the_repeater_field and the_flexible_field. Allows for nested while loops!
  • [Improved] Improve save_post functions-
  • [Fixed] Fix relationship AJAX abort for multiple fields –


  • [Upgrade] Database Upgrade is required to modify the taxonomy filtering data for fields. This allows for performance boosts throughout ACF.
  • [Improved] relationship field: Improve querying posts / results and use AJAX powered search to increase performance on large-scale websites
  • [Improved] post object field: Improve querying posts / results


  • [Fixed] Integrate with Shopp plugin


  • [Fixed] Fix gallery sortable in repeater –
  • [Fixed] Test / Fix two gallery fields –
  • [Fixed] Fix tinymce undefined visual editor off –
  • [Updated] Update Polish translation – Thanks to


  • [Fixed] Gallery not returning correct order


  • [Added] Add new Gallery Field
  • [Fixed] Test / Fix update_field on repeater / flexible content
  • [Fixed] Fix regex JS issue with adding nested repeaters
  • [Added] Add new Czech translation – Thanks to Webees ( )


  • [Added] Repeater – Add option for min rows + max rows –
  • [Fixed] Test / Fix Chrome Double WYSIWYG. Again…
  • [Added] Add “future” to post status options –
  • [Added] Make image sizes strings “Pretty” for preview size options
  • [Fixed] Test / Fix WYSIWYG insert image inside a repeater bug –


  • [Fixed] Rename controller classes –
  • [Added] Add edit button to image / file fields
  • [Fixed] WYSIWYG toolbar buttons dissapearing in HTML tab mode


  • [Fixed] Fix flexible content inside repeater add extra row jquery bug –
  • [Added] Add suppress_filters to relationship field for WPML compatibility –
  • [Added] Add new German translation –
  • [Added] Add new Italian translation – Alessandro Mignogna (
  • [Added] Add new Japanese translation –
  • [Fixed] Test / Fix WYSIWYG removing p tags –
  • [Added] edit basic toolbar buttons to match WP teeny mode – WYSIWYG
  • [Fixed] Test front-end form hiding –
  • [Fixed] Test saving user custom fields –
  • [Fixed] Fix options page translation bug –
  • [Fixed] Pages rule not returning private pages –
  • [Added] Add custom add_image_size() Image field preview sizes –


  • [IMPORTANT] Change field group option “Show on page” to “Hide on Screen” to allow for future proof adding new elements to list. Previously exported and registered field groups via PHP will still work as expected! This change will prompt you for a database upgrade.
  • [Added] Add in edit button to upload image / file thickbox
  • [Improved] Changed loading default values. Now behaves as expected!
  • [Fixed] Test / Fix full screen mode disappearing from editor –
  • [Fixed] get_field returning false for 0 –
  • [Improved] Improve relationship sortable code with item param –
  • [Fixed] IE category js bug –
  • [Fixed] Flexible content field row css bug –
  • [Fixed] Repeater row limit in flexible field bug –
  • [Fixed] Fix update message – appears on first activation
  • [Fixed] Fix options page sidebar drag area – no border needed
  • [Fixed] Fix export options page activation –


  • [Fixed] Remove translation from validation class –
  • [Fixed] Test fix WYSIWYG insert media issues
  • [Added] Add Excerpt to the field group “show on page” options


  • [Fixed] Include WYSIWYG scripts / styles through the editor class
  • [Fixed] WYSIWYG in repeater not working
  • [Fixed] Remove Swedish translation until string / js bugs are fixed
  • [Fixed] Checkbox array value issue:
  • [Added] Add inherit to relationship posts query –
  • [Fixed] Relationship shows deleted posts –
  • [Fixed] WYSIWYG editor not working on taxonomy edit page


  • [Fixed] Fix layout bug: Nested repeaters of different layouts
  • [Fixed] Fix strip slashes bug
  • [Fixed] Fix nested repeater bug –
  • [Fixed] Test / Fix add multiple images to repeater


  • Field groups can now be added to options page with layout “side”
  • Fixed debug error when saving a taxonomy:
  • Fixed unnecessary code: Remove Strip Slashes on save functions
  • Added new add row buttons to the repeater field and upgraded the css / js
  • Fixed debug error caused by the WYSIWYG field: wp_tiny_mce is deprecated since version 3.3! Use wp_editor() instead.
  • Fixed duplicate field error where all sub fields became repeater fields.
  • Add Swedish translation:
  • CSS improvements
  • Fixed IE9 Bug not returning an image preview on upload / select
  • Fixed Multi export php syntax bug.


  • Fixed Browser bug with Flexible Field: Add Row button works again
  • Added Brazilian Translation. Thanks to Marcelo Paoli Graciano –
  • Reverted input CSS to separate field label / instructions onto new lines.


  • Updated Images / JS – Please hard refresh your browser to clear your cache
  • Remove caching from acf_field_groups, replace with temp cache
  • Add “Duplicate Field” on field group edit page
  • Fix link to documentation on field group edit page
  • add “update_value” to API
  • Include new Polish translation
  • Create a nicer style for flexible content
  • Create a nicer style for repeater fields with row layout
  • Create a nicer style for “no metabox” fields
  • Add Spanish translation. Thanks to @hectorgarrofe
  • Fix css for options page no metabox
  • Added custom post_updated_messages.
  • Changed “Drag and drop to reorder” from an image to a string for translation.


  • Options page fields now save their data in the wp_options table. This will require a “Database Upgrade” when you update ACF. This upgrade will move your Options page data from the postmeta table to the options table.
  • Added _e() and __() functions to more text throughout plugin
  • Added new French translation. Thanks to Martin Vauchel @littlbr
  • Fixed duplicate WYSIWYG in Chrome bug
  • New Location rules: add fields to a user / taxonomy / attachment
  • Bug Fix: Colour picker now shows colour on page load. Thanks to Kevin Ruscoe”
  • CSS tweaks File clearfix, new style for selects with optgroups
  • Simplified get_value to return default value if value == “”
  • API now allows for “option” and “options” for the $post_id value in API functions


  • Bug fix: Image field returns correct URL after selecting one or more images
  • Translation: Added Polish translation. Thank you Bartosz Arendt – Digital Factory –
  • Update : Added ID attribute to all div.field (id=”acf-$field_name”)


  • New style for buttons
  • Bug fix: Repeater maximum row setting was disabling the “add row” button one row early.
  • Performance: Field options are now loaded in via Ajax. This results in much less HTML on the edit field group page.
  • Performance: Field inputs are now loaded in via Ajax. Again, less HTML on edit screens improves load times / memory usage.
  • Bug fix: Field groups registered by code were not showing on Ajax change (category / page type / page template / etc). To fix this, your field group needs a unique ID. When you export a field group, you will now be given a unique ID to fix this issue. Field groups without a fixed ID will still show on page load.
  • New option: Repeater field can now have a custom button label
  • New option: Flexible content field can now have a custom button label
  • Improvement: Updated the HTML / CSS for file fields with icon
  • Bug fix: Fixed multi upload / select image in repeater.
  • Performance: Added caching to the get_field function. Templates will now render quicker.
  • Bug fix: Fixed post formats location rule – it now works.
  • Nested repeaters are now possible!


  • Improvement: Redesigned the experience for uploading and selecting images / files in fields and sub fields. Image / File fields within a repeater can now add multiple images / files


  • New Feature: front-end form. Please read documentation on website for usage.
  • Performance: compiled all field script / style into one JS file
  • Bug fix: Editor now remembers mode (Visual / HTML) without causing errors when loading in HTML mode
  • Improvement: Added draft / private labels to post objects in relationship, post object and page link fields


  • Bug fix: Options page fields were rendered invisible in v3.1.2 (now fixed)
  • Updated POT file with new texts


  • New Feature: Required field validation. Note: Repeater / Flexible content fields can be required but their sub fields can not.
  • Field update: Select field: API now returns false when “null” is selected
  • Field update: Radio button: When editing a post / page, the radio button will select the first choice if there is no saved value for the field
  • Bug fix: You can now use a repeater field inside a flexible field! Please note that the_repeater_field will not work as expected. Please use get_sub_field to get the sub repeater field, then use php to loop through it.


  • New Feature: Added shortcode support. usage: [acf field=”field_name”]
  • Bug fix: Fixed menu disappearing by changing the function “add_menu” to “add_utility_page”
  • Visual: Changed post object / page link fields to display post type label instead of post type name for the select optgroup label. Thanks to kevwaddell for the code.


  • New Field: Flexible Content Field (license required)
  • Bug fix: ACF data now saves for draft posts (please do a hard refresh on an edit screen to remove cached JS)
  • Bug fix: Fixed multiple content editors


  • Added export / register support via PHP
  • Moved menu position under Settings
  • Improve speed / php memory by introducing cached data
  • Temp bug fix: sets content editor to “visual mode” to stop wysiwyg breaking
  • Visual: Removed “Screen Options” tab from the admin acf edit page. Added filter to always show 99 acf’s
  • Minor JS improvements


  • Bug fix: Location meta box now shows all pages / posts
  • Bug fix: upgrade and settings url should now work / avoid conflicts with other plugins


  • Support: use WP native functions to add all user roles to location meta box
  • Update: gave ACF a CSS update + new menu structure
  • Bug fix: fixed a few issues with WYSIWYG JS/CSS in WP 3.3
  • Bug fix: fixed page_name conflicting with normal pages / posts by adding a “acf_” to the page_name on save / update
  • Performance: location meta box – limited taxonomies to hierarchical only. Posts and Pages have now been limited to 25


  • Bug fix: WYSIWYG is now compatible with WP 3.3 (May have incidentally added support for Gravity Forms’ media button! But not 100% sure…)
  • Fix: Taxonomy Location rule now only shows hierarchal taxonomies to improve speed and reduce PHP memory issues


  • New translation: French (thanks to Netactions)
  • Support: added support for new WP 3.3 editor
  • Bug fix: fixed WYSIWYG editor localised errors
  • Bug fix: removed trailing commas for IE7


  • New feature: added Export tab to export a WP native .xml file
  • New option: Relationship / Post type – filter by taxonomy
  • New option: default values for checkbox, select and radio
  • New Function: register_options_page – add custom options pages (Requires the option page add-on)
  • Bug fix: WYSIWYG + repeater button issues
  • Bug fix: general house-keeping


  • Bug fix – Repeater + WYSIWYG delete / add duplicate ID error
  • Bug fix – repeater + file – add file not working
  • Bug fix – image / file no longer need the post type to support “editor”
  • WYSIWYG – fixed broken upload images
  • Misc. updates to accommodate the soon-to-be-released “Flexible Field”


  • ACF doesn’t use any custom tables any more! All data is saved as post_meta!
  • Faster and more stable across different servers
  • Draggable / sortable meta boxes
  • Fields extend from a parent object! Now you can create you own field types!
  • New location rule: Taxonomy
  • New function: register_field($class, $url);
  • New field: Colour Picker
  • New option: Text + text area formatting
  • New option: WYSIWYG Show / Hide media buttons, Full / Basic Toolbar buttons (Great for a basic WYSIWYG inside a repeater for your clients)
  • Lots of bug fixes


  • Fixed add image TinyMCE error for options page WYSIWYG
  • API: added new function: update_the_field($field_name, $value, $post_id)
  • New field: Relationship
  • New option for Relationship + Post Object: filter posts via meta_key and meta_value
  • Added new option: Image preview size (thumb, medium, large, full)
  • Fixed duplicate posts double value problem
  • API update: get_field($repeater) will return an array of values in order, or false (like it used to!)
  • Radio Button: added labels around values
  • Post object + Page Link: select drop down is now hierarchical
  • Input save errors fixed
  • Add ‘return_id’ option to get_field / get_sub_field
  • Many bug fixes


  • Fixed API returning true for repeater fields with no data
  • Added get_fields back into the API!
  • Fixed field type select from showing multiple repeater activation messages


  • Fixed repeater sortable bug on options page
  • Fixed WYSIWYG image insert on options page
  • Fixed checkbox value error
  • Tidied up JavaScript + WYSIWYG functions


  • Fixed Javascript bugs on edit pages


  • Integrate acf_values and wp_postmeta! Values are now saved as custom fields!
  • Ajax load in fields + update fields when the page / post is modified
  • API has been completely re-written for better performance
  • Default value – text / text area
  • New upgrade database message / system
  • Separate upgrade / activate scripts
  • Select / page link / post object add null option
  • Integrate with Duplicate Posts plugin
  • New location rule: post format
  • Repeater field attach image to post
  • Location: add children to drop-down menu for page parent
  • Update script replaces image URLs with their IDs
  • All images / files save as IDs now; API formats the value back into a URL
  • Simple CSS + JS improvements
  • New Field: Radio Buttons (please note Firefox has a current bug with jQuery and radio buttons with the checked attribute)


  • New Feature: Import / Export
  • Bug fixed: WYSIWYG JavaScript conflicts
  • Bug fixed: WYSIWYG popups conflicting with the date picker field
  • New style for the date picker field


  • New add-on: options page (available on the plugins store:
  • API: all functions now accept ‘options’ as a second parameter to target the options page
  • API: the_field() now implodes arrays and returns as a string separated by commas
  • Fixed Bug: Image upload should now work on post types without editor
  • Fixed Bug: Location rule now returns true if page_template is set to ‘Default’ and a new page is created
  • General housekeeping


  • Added option: Repeater Layout (Row / Table)
  • Fixed bug: Now you can search for media in the image / file fields
  • Added option: Image field save format (image URL / attachment ID)
  • Added option: File field save format (file URL / attachment ID)
  • Fixed bug: Location rules for post categories now work
  • Added rule: Page parent
  • Fixed bug: “what’s new” button now shows the changelog
  • included new css style to fit in with WordPress 3.2
  • Minor JS improvements


  • Added new database table “acf_rules”
  • Removed database table “ac_options”
  • Updated location meta box to now allow for custom location queries
  • Hide Activation Code from logged in users
  • Fixed JS bugs with WP v3.2 beta 2
  • Added new option “Field group layout” – you can now wrap your fields in a meta box!
  • General housekeeping


  • Added Field Option: Field Instructions
  • Added Field Option: Is field searchable? (saves field value as a normal custom field so you can use the field against WP queries)
  • Added media search / pagination to image / file Thickbox
  • Added Media Upload support to post types without a content editor.
  • Fixed “Select Image” / “Select File” text on Thickbox buttons after upload
  • Repeater field now returns null if no data was added


  • Completely re-designed the ACF edit page
  • Added repeater field (unlocked through external purchase)
  • Fixed minor JS bugs
  • Fixed PHP error handling
  • Fixed problem with update script not running
  • General JS + CSS improvements


  • Fixed image / file upload issues
  • Location now supports category names
  • Improved API – now it doesn’t need any custom fields!
  • Fixed table encoding issue
  • Small CSS / field changes to ACF edit screen


  • Image Field now uses WP Thickbox!
  • File Field now uses WP Thickbox!
  • Page Link now supports multiple select
  • All text has been wrapped in the _e() / __() functions to support translations!
  • Small bug fixes / housekeeping
  • Added ACF_WP_Query API function


  • Fixed WYSIWYG API format issue
  • Fixed Page Link API format issue
  • Select / Checkbox can now contain a URL in the value or label
  • Can now unselect all user types form field options
  • Updated value save / read functions
  • Lots of small bug fixes


  • Fixed slashes issue on edit screens for text-based fields


  • Lots of field type bug fixes
  • Now uses custom database tables to save and store data!
  • Lots of tidying up
  • New help button for location meta box
  • Added $post_id parameter to API functions (so you can get fields from any post / page)
  • Added support for key and value for select and checkbox field types
  • Re-wrote most of the core files due to new database tables
  • Update script should copy across your old data to the new data system
  • Added True / False field type


  • New Field Type: Post Object
  • Added multiple select option to Select field type


  • Updated the location options. New override option!
  • Fixed un-checking post type problem
  • Added JS alert if field has no type


  • Heaps of JS bug fixes
  • API will now work with looped posts
  • Date Picker returns the correct value
  • Added post type option to Page Link Field
  • Fixed image + file uploads!
  • Lots of tidying up!


  • Bug fix: Stopped field options from losing data
  • Bug fix: API will now work with looped posts


  • New API Functions: get_fields(), get_field(), the_field()
  • New Field Type: Date Picker
  • New Field Type: File
  • Bug fixes
  • You can now add multiple ACFs to an edit page
  • Minor CSS + JS improvements


  • Advanced Custom Fields.