I’ve been trying to affect a block, based on an external custom field but with no luck! So i wanted to check and see if anyone has managed to do this, if i am missing something daft or if it is simply not possible!
What i mean is, i have a custom field that appears in the side bar of every page of type “Page”. It’s a select which returns a value between 1 and 4.
Then, i have a custom block for the page hero area.
What i would like to be able to do is, inside the hero block, check the value of my custom field that appears in the side bar and alter things according to what that field is set to.
What i’m finding is, if i retrieve the sidebar field in my page.php template, it returns the number, as expected. But if i try from within the hero block, it returns absolutely nothing!
Any ideas? :^)
Anyone know if this is doable?
It looks like this post wasn’t read yet but i did have a weird issue when i posted it (it threw an error saying it was a duplicate post and i only just now stumbled across the fact it has turned up!)
Surely i can check a value outside of a block and use it to alter the block?
From what I understand you’re working inside an ACF block and want to get data from another block on the same page.
You can get block data from a page like so:
$post = get_post($post_id);
$blocks = parse_blocks($post->post_content);
$blocks here will be an array of all blocks in the page, this includes their basic info and all the data (fields).
If you’re trying to get fields bound to the page itself (and not another block), you could get it by passing the page id to the get_field function:
$value = get_field('my_field', $post_id);
This works. The big catch is that the content of blocks doesn’t update dynamically when changing values of a field. Only after a full page reload the value will be changed.
The topic ‘Getting data from custom fields outside of blocks’ is closed to new replies.
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users
Helping others is a great way to earn karma, gain badges and help ACF development!
We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. Read about how we use cookies and how you can control them in our Privacy Policy. If you continue to use this site, you consent to our use of cookies.