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.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
css
js
lang
.gitignore
README.md
acf-smart-button-v5.php
acf-smart-button.php
composer.json
readme.txt

README.md

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 button.target 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.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 Buttonse
[url] => http://yoursite.dev/selected-page
[target] => ''

When External

[text] => I am an external Buttonse
[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 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?)

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

  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)
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.

You can’t perform that action at this time.