26th Apr '23
/
6 comments

Custom Function for ACF Link Field

Update: See https://brickslabs.com/custom-function-for-acf-link-field/#comment-863


In Bricks Discord chat, a user asked:

Does anyone know how to output the label of an ACF link field through Dynamic Data?

With the Return Value of a “Link” type of ACF field set at its default “Link Array”, the array looks like this:

when the field is populated for a post like this:

For printing out the values of title and url array keys for use in Bricks via its dynamic data tags feature, we can define a custom function like this (goes in child theme’s functions.php or a code snippets plugin):

function bl_get_link( string $field_name, string $key ) {
    $field_value = get_post_meta( get_the_ID(), $field_name, true );

    if ( $field_value && isset( $field_value[$key] ) ) {
        return $field_value[$key];
    }
}

and use it in Bricks like this:

{echo:bl_get_link(page_link,title)}

{echo:bl_get_link(page_link,url)}

where page_link is the field name.

Get access to all 625 Bricks code tutorials with BricksLabs Pro

6 comments

  • Is there a way to get the title of a linked page from a Page Link flie type field in acf?

    • A

      As mentioned in the documentation at https://www.advancedcustomfields.com/resources/page-link/#template-usage

      > The Page Link field will return either a single URL or array of URLs. To get more data from a selected post, please use the post object field instead.

      it is better to use a Post Object type of field when you need other data about the linked post.

      • Thanks Sridhar, I've made that change and now, after setting up a custom function using "Filter: bricks/code/echo_function_names" I can now echo the post title in a button as required.

  • Is it gonna work if Link is inside ACF Repeater?

    • A

      Yes, it does.

      There is no need to use a custom function now.

      Title: {acf_event_organizers_page_link:array_value|title}

      URL: {acf_event_organizers_page_link:array_value|url}

      Target: {acf_event_organizers_page_link:array_value|target}

      where event_organizers is the Repeater name and page_link is the Link-type field's name.

      • Hunter

        I've been looking for the syntax for too long. This fixed my issue. Thank you Sridhar

Leave a Reply to Sridhar Katakam (Cancel Reply)

 

Related Tutorials..

Pro
ACF Options Fields in Bricks

ACF Options Fields in Bricks

This Pro tutorial walks you through outputting the values of custom fields attached to an ACF Pro's Options page in Bricks builder. We shall register…
Categories:
Pro
ACF User Field Bricks PHP Query

ACF User Field Bricks PHP Query

In the Bricks Facebook group a user asks: my end goal was to create a set of cards that would display the Users that are…
Categories:
How to populate a map with dynamic markers from a CPT using ACF in Bricks (PART 1)

How to populate a map with dynamic markers from a CPT using ACF in Bricks (PART 1)

This tutorial provides the PHP & JS codes that can be pasted in order to create a dynamic map with markers populated from a custom…
Categories:
Pro
Conditional Output based on Date Time Picker Field in Bricks

Conditional Output based on Date Time Picker Field in Bricks

In the past, we showed how elements can be conditionally output based on a post's Date type of ACF field here. This Pro tutorial for…
Categories: