{"id":297273,"date":"2026-05-10T10:12:01","date_gmt":"2026-05-10T10:12:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/acf-address-lookup\/"},"modified":"2026-05-10T20:56:19","modified_gmt":"2026-05-10T20:56:19","slug":"jk-address-lookup-for-acf","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/jk-address-lookup-for-acf\/","author":15165418,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"6.9.4","requires":"6.0","requires_php":"7.2","requires_plugins":null,"header_name":"JK Address Lookup field for ACF","header_author":"Justin Kruit","header_description":"ACF field integration for address lookup providers.","assets_banners_color":"60a5fa","last_updated":"2026-05-10 20:56:19","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/justinkruit\/acf-address-lookup","header_author_uri":"https:\/\/justinkruit.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":42,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"justinkruit","date":"2026-05-10 20:56:19"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3527710,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon.svg":{"filename":"icon.svg","revision":3527710,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3527710,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3527710,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2211,3513,2217,6110,194047],"plugin_category":[],"plugin_contributors":[251479],"plugin_business_model":[],"class_list":["post-297273","plugin","type-plugin","status-publish","hentry","plugin_tags-acf","plugin_tags-address","plugin_tags-advanced-custom-fields","plugin_tags-geocoding","plugin_tags-nominatim","plugin_contributors-justinkruit","plugin_committers-justinkruit"],"banners":{"banner":"https:\/\/ps.w.org\/jk-address-lookup-for-acf\/assets\/banner-772x250.png?rev=3527710","banner_2x":"https:\/\/ps.w.org\/jk-address-lookup-for-acf\/assets\/banner-1544x500.png?rev=3527710","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/jk-address-lookup-for-acf\/assets\/icon.svg?rev=3527710","icon":"https:\/\/ps.w.org\/jk-address-lookup-for-acf\/assets\/icon.svg?rev=3527710","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Address Lookup field for ACF adds an address lookup field type to Advanced Custom Fields. Users can search for addresses directly within the editor, and the field returns structured address data including coordinates.<\/p>\n\n<p>The plugin uses <a href=\"https:\/\/nominatim.openstreetmap.org\/\">Nominatim (OpenStreetMap)<\/a> as the default lookup provider, and supports registering custom providers.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Live address search<\/strong> \u2014 AJAX-powered search as you type, using Select2.<\/li>\n<li><strong>Structured data<\/strong> \u2014 Returns a normalized array with display name, coordinates (lat\/lon), house number, road, city, state, postcode, and country.<\/li>\n<li><strong>Country code filtering<\/strong> \u2014 Limit search results to specific countries.<\/li>\n<li><strong>Language support<\/strong> \u2014 Set the preferred language for results.<\/li>\n<li><strong>Extensible provider system<\/strong> \u2014 Register your own address lookup providers via the <code>address_lookup_for_acf\/register_providers<\/code> action.<\/li>\n<li><strong>REST API support<\/strong> \u2014 Field values are exposed in the REST API.<\/li>\n<\/ul>\n\n<h4>Usage<\/h4>\n\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Create or edit an ACF field group.<\/li>\n<li>Add a new field and select the <strong>Address<\/strong> field type.<\/li>\n<li>Optionally configure country code filtering and language.<\/li>\n<li>Use <code>get_field()<\/code> or <code>the_field()<\/code> in your templates \u2014 the value is returned as an associative array.<\/li>\n<\/ol>\n\n<h4>Template example<\/h4>\n\n<pre><code>$address = get_field('my_address_field');\n<\/code><\/pre>\n\n<p>The returned array has the following structure:<\/p>\n\n<pre><code>[\n    'display_name'  =&gt; 'Example Street 1, City, Country',\n    'coordinates'   =&gt; ['lat' =&gt; '52.370216', 'lon' =&gt; '4.895168'],\n    'house_number'  =&gt; '1',\n    'road'          =&gt; 'Example Street',\n    'city'          =&gt; 'City',\n    'state'         =&gt; 'State',\n    'postcode'      =&gt; '1234 AB',\n    'country'       =&gt; 'Country',\n]\n<\/code><\/pre>\n\n<h4>Custom providers<\/h4>\n\n<p>You can register a custom address lookup provider by hooking into the <code>jk_address_lookup_for_acf\/register_providers<\/code> action:<\/p>\n\n<pre><code>add_action('jk_address_lookup_for_acf\/register_providers', function ($registry) {\n    $registry-&gt;register(new MyCustomProvider());\n});\n<\/code><\/pre>\n\n<p>Your provider must extend <code>justinkruit\\AddressLookupForAcf\\Providers\\AbstractProvider<\/code> and implement the <code>name()<\/code>, <code>label()<\/code>, and <code>search()<\/code> methods.<\/p>\n\n<h4>Filters<\/h4>\n\n<ul>\n<li><code>jk_address_lookup_for_acf\/nominatim_url<\/code> \u2014 Override the Nominatim API base URL (e.g. to use a self-hosted instance).<\/li>\n<li><code>jk_address_lookup_for_acf\/nominatim_url_vars<\/code> \u2014 Modify the query parameters sent to the Nominatim API.<\/li>\n<\/ul>\n\n<p>Both filters also support ACF's field-specific variations by type, name, and key.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to third-party external services to perform address lookups. No data is sent automatically; requests are only made when an admin user actively searches for an address in the ACF field editor. The search query text is sent to the configured provider's API.<\/p>\n\n<p>Below is a list of each provider, what additional data is sent, how to override the API URL, and links to their terms and privacy policies.<\/p>\n\n<h4>Nominatim (OpenStreetMap)<\/h4>\n\n<p>Service: <a href=\"https:\/\/nominatim.openstreetmap.org\/\">Nominatim<\/a> by the OpenStreetMap Foundation: used for geocoding address searches.<\/p>\n\n<p>Additional data sent: configured country code(s) and language preference (if set in the field settings).<\/p>\n\n<p>Override URL: use the <code>jk_address_lookup_for_acf\/nominatim_url<\/code> filter to point to a self-hosted instance.<\/p>\n\n<p>Policies:<\/p>\n\n<ul>\n<li><a href=\"https:\/\/operations.osmfoundation.org\/policies\/nominatim\/\">Nominatim Usage Policy<\/a><\/li>\n<li><a href=\"https:\/\/osmfoundation.org\/wiki\/Terms_of_Use\">OpenStreetMap Foundation Terms of Use<\/a><\/li>\n<li><a href=\"https:\/\/osmfoundation.org\/wiki\/Privacy_Policy\">OpenStreetMap Foundation Privacy Policy<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>address-lookup-for-acf<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Ensure Advanced Custom Fields (free or PRO) is installed and active.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20acf%20pro%3F\"><h3>Does this plugin require ACF PRO?<\/h3><\/dt>\n<dd><p>No. It works with both the free and PRO versions of Advanced Custom Fields.<\/p><\/dd>\n<dt id=\"can%20i%20use%20a%20self-hosted%20nominatim%20instance%3F\"><h3>Can I use a self-hosted Nominatim instance?<\/h3><\/dt>\n<dd><p>Yes. Use the <code>jk_address_lookup_for_acf\/nominatim_url<\/code> filter to point to your own instance:<\/p>\n\n<pre><code>add_filter('jk_address_lookup_for_acf\/nominatim_url', function () {\n    return 'https:\/\/nominatim.example.com\/search';\n});\n<\/code><\/pre><\/dd>\n<dt id=\"what%20php%20version%20is%20required%3F\"><h3>What PHP version is required?<\/h3><\/dt>\n<dd><p>PHP 7.2 or higher is required.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Nominatim (OpenStreetMap) provider.<\/li>\n<li>Country code filtering and language settings.<\/li>\n<li>Extensible provider architecture.<\/li>\n<\/ul>","raw_excerpt":"ACF field integration for address lookup providers.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/297273","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=297273"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/justinkruit"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=297273"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=297273"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=297273"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=297273"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=297273"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=297273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}