Skip to content
A simple, clean and lean acf Field for internal and external links.
PHP CSS JavaScript
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.

ACF Smart Button

A simple, clean and lean acf Field that allows the user to select an internal link as a post_object or an external link as a url field via a smooth toggle.

It always returns the url as the same field, wheter its the internal or external link. With you can additionaly add target="_blank" in your template without additional casing.

alt tag

alt tag

Example (twig style):

{% if button %}   
<a href="{{ button.url }}" {{ }}>{{ button.text }}</a>   
{% endif %}

Isn't that lean =)?

Example (vanilla PHP):

if ( get_field( 'acf_button_field' ) ) : 
$button = get_field( 'acf_button_field' );
$button_label = $button['text'];
$button_url = $button['url'];
$button_target = $button['target'];

Output / Return

When Internal

[text] => I am an internal Buttonse
[url] =>
[target] => ''

When External

[text] => I am an external Buttonse
[url] =>
[target] => 'target="blank"'

Note: In both cases the field data will only be returned if the button text is set in combination with a target. If either one is missing, there will be no return.

Future Plans

  • option to select allowed post_types for post_object selector 7626ad4
  • language support
  • validate url field
  • cleanups etc.
  • eventually acf4 support (no?)


This add-on works only with version 5 and up.


This add-on can be treated as both a WP plugin and a theme include.

Install as Plugin

  1. Copy the 'acf-button' folder into your plugins folder
  2. Activate the plugin via the Plugins admin page

Include within theme

  1. Copy the 'acf-smart-button' folder into your theme folder (can use sub folders). You can place the folder anywhere inside the 'wp-content' directory
  2. Edit your functions.php file and add the code below (Make sure the path is correct to include the acf-button.php file)


Partially inspired by, but is missing acf5 support and didn't meet my requirements fully.

You can’t perform that action at this time.