Search by

iamntz / carbon-fields-urlpicker

iamntz

Carbon Fields extension that adds a URL picker field type.

Package info

github.com/iamntz/carbon-fields-urlpicker

Language:JavaScript

pkg:composer/iamntz/carbon-fields-urlpicker

Statistics

Installs: 44 537

Dependents: 0

Suggesters: 0

Stars: 14

Open Issues: 0

3.0.12 2026-08-31 11:04 UTC

This package is auto-updated.

Last update: 2026-08-31 11:11:16 UTC


README

(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?

You can get hosting (and receive $10 credit!) or donate.