livy / plumbing-normalize-links
Normalize the output of WordPress's native "link" in ACF.
1.6.1-alpha
2020-11-10 20:35 UTC
Requires
- php: ~7.3
Requires (Dev)
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-12-21 21:47:30 UTC
README
The purpose of this small package is to ingest the link arrays produced by ACF’s "link" field type, do a bit of logic on them, and provide a nice interface for interacting with that data. It can also accept urls as plain strings.
Usage
ACF field$Link = new Normalized(get_field('some_link')); $Link->valid(); //whether or not this is a "valid" link $Link->url(); // the URL of the link $Link->label(); // the "title" set for this link $Link->newTab(); // whether this link should be opened in a new tab $Link->probablyExternal() // if the link is (probably) external or notSimple string
$Link = new Normalized('https://www.alwaysblank.org');
Settings
A small number of settings are also supported, which can be passed when instantiated.
$Link = new Normalized(get_field('some_link'), [ 'label' => "Learn More", // Used as a fallback if there is no `title.` 'external_in_new_tab' => true, // Always open external links in new tab 'validate' => [ 'url' => false, 'label' => false, ], // Validate url and/or label ]);
label
defaults to "Learn More" and external_in_new_tab
defaults to true
.
validate
defaults to not validating inputs.
You can specify which items (url
or label
) to validated, or set validate
to true
to validate all items.