Carbon Field Url Picker WP Registry grade A. No security issues foundWP RegistryNo security issues foundOpen the reportA #10 in Content & Publishing
Add an URL Picker field to Carbon
Install
Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/iamntz/carbon-fields-urlpicker/releases/download/v3.0.12/carbon-fields-urlpicker.zipCarbon Field: urlpicker
(this is an extension of Carbon Fields plugin)
You can install it via composer:
composer require iamntz/carbon-fields-urlpicker --prefer-dist
If you install it from the source, you need to make sure that you also run npm install and npm run production in order to have assets compiled.
Return values:
The field will return an associative array with the following values:
url: the actual URL
anchor: the text anchor (might be blank)
blank: wether the link should open in a new window or not
Example
Registering A Field
This goes in your functions.php as with other Carbon Fields fields. The only difference is that the type is urlpicker.
use Carbon_Fields\Container;
use Carbon_Fields\Field;
add_action( 'carbon_fields_register_fields', 'crb_url_picker_test' );
function crb_url_picker_test() {
Container::make( 'post_meta', 'URL Picker Test' )
->add_fields( array(
Field::make( 'urlpicker', 'crb_my_link', 'URL Picker Test' )
->set_help_text( "This is a test of the URL picker." )
));
}
Using Field Values
<?php $my_link = carbon_get_the_post_meta( 'crb_my_link' ); ?>
<a href="<?= $my_link[url] ?>"<?= ( $my_link[blank] ? ' target="_blank"' : '') ?>><?= $my_link[anchor] ?></a>
Use preview in a complex (repeater) field via set_header_template
The value of the field is an object of this shape:
{
url: string,
anchor: string,
blank: bool,
}
Which means you can use it inside a ->set_header_template() call and do some basic text alteration:
Field::make( 'complex', 'crb_slider', __( 'Slider' ) )
->add_fields([ Field::make( 'urlpicker', 'url', __( 'Block Heading' ) ) ])
->set_header_template( '
<% if (url?.anchor && typeof url?.anchor === `string`) { %>
<%- url?.anchor.substr(0, 10) %>
<% } %>
')
Note that the blank field will return 0 or 1, depending on whether the checkbox is ticked next to "Open link in a new tab".
Found this useful?
Releases
7 releases. Each count is every asset in that release; expand a row for the breakdown.
Active-site estimate ≈10 comes from the median of recent superseded releases. Method.