Opens in a new tab
28th Jan '24
/
0 comments

Conditionally Render ACF Custom Fields in the Post Editor

In the BricksLabs Facebook group a user asked:

Hello! ???? Is it possibile to conditionally show ACF meta boxes based on how many parents a custom post type has? For example, show only if the post being edited has 2 parents.

I attempted to use the filter acf/prepare_field, but without success.

Is there a tutorial or example code available that can guide me in achieving this conditional display? Thanks in advance! ????

ACF has a handy acf/prepare_field filter using which custom fields can be conditionally output when editing posts (can be of any post type).

To render a ACF custom field named “location_specialty” only if the current (location) post has exactly two parents using the acf/prepare_field/name=example_field filter, add this code in

Add the following in child theme‘s functions.php (w/o the opening PHP tag) or a code snippets plugin:

<?php 

add_filter( 'acf/prepare_field/name=location_specialty', function ( $field ) {
	return count( get_post_ancestors( get_the_ID() ) ) === 2 ? $field : false;
} );

Use case: Let’s say you have these location posts:

and you want a “Location Specialty” custom field that’s in a field group attached to the “Location” CPT to only appear when Melbourne (or any other location that has 2 parents similarly) is being edited. This code snippet does the job.

Reference

https://developer.wordpress.org/reference/functions/get_post_ancestors/

Get access to all 633 Bricks code tutorials with BricksLabs Pro

Leave the first comment

 

Related Tutorials..

Pro
Filtering ACF Relationship Query by Post Meta in Bricks

Filtering ACF Relationship Query by Post Meta in Bricks

How to filter the posts of a post type related to another post type based on the value of a True / False type ACF…
Filtering out Media Items from “Select post/page” Bricks control

Filtering out Media Items from “Select post/page” Bricks control

The dropdown that appears after choosing "Internal post/page" when setting a link in Bricks shows media (attachment) items besides Pages, Posts and other CPTs. If…
Pro
How to Update Custom Fields with Default Values For Existing Posts when using ACF

How to Update Custom Fields with Default Values For Existing Posts when using ACF

Let's take a scenario where there are 10 Pages in a WordPress site. You proceed to create a Text-type of custom field called, say, "Custom…
Categories:
Tags: