Advanced Custom Fields: Smart Button WP Registry grade A. No security issues foundWP RegistryNo security issues foundOpen the reportA
A simple, clean and lean acf Field for internal and external links.
Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/gillesgoetsch/acf-smart-button/archive/refs/heads/master.zipOn Packagist as gillesgoetsch/acf-smart-button:
composer require gillesgoetsch/acf-smart-buttonA 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, whether it's an internal or external link. With button.target you can additionally add target="_blank" in your template without additional casing.


Example (twig style):
{% if button %}
<a href="{{ button.url }}" {{button.target }}>{{ 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'];
endif;
Output / Return
When Internal
[text] => I am an internal button
[url] => http://yoursite.dev/selected-page
[target] => ''
When External
[text] => I am an external button
[url] => http://kollektiv.ag
[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 data returned.
Future Plans
option to select allowed post_types for post_object selector7626ad4- language support
- validate url field
- cleanups etc.
eventually acf4 support(no?)
Compatibility
This add-on works only with version 5 and up.
Installation
This add-on can be treated as both a WP plugin and a theme include.
Install as Plugin
- Copy the 'acf-button' folder into your plugins folder
- Activate the plugin via the Plugins admin page
Include within theme
- 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
- Edit your functions.php file and add the code below (Make sure the path is correct to include the acf-button.php file)
include_once('acf-smart-button/acf-smart-button.php');
Else
Partially inspired by https://github.com/envex/acf-button-field, but is missing acf5 support and didn't meet my requirements fully.
Releases
4 releases.
These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.