Opens in a new tab
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 633 Bricks code tutorials with BricksLabs Pro

6 comments

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

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

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

Leave your comment

 

Related Tutorials..

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:
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:
Accessing ACF Repeater Sub Fields Programmatically in Bricks Query Loop

Accessing ACF Repeater Sub Fields Programmatically in Bricks Query Loop

It is possible to output sub field's values when a Bricks query loop's type has been set to a ACF Repeater without writing code. This…
Categories:
Pro
Events grouped by Event Date custom field in Bricks

Events grouped by Event Date custom field in Bricks

This Pro tutorial for Bricks users provides the steps to output posts of an event custom post type dynamically grouped by the value of their…
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: