Note: This tutorial is no longer needed. It is recommended to instead use the built-in Dynamic Data condition of Oxygen.

In Oxygen‘s Facebook group a user asked:

Q2) The Author CPT has custom fields for social URLs. I would like to use the ACF as the link on the respective social Icons… ONLY if the field has data. Can I wrap a peice of oxy content in php that checks if the field has data before displaying?

We can create a custom shortcode that returns the enclosed content only if the supplied custom field has a value – to be used with a Shortcode Wrapper component.

Step 1

Install and activate Code Snippets plugin.

Go to Snippets > Add New.

Title: Shortcode to output a custom field only if it has a value


add_shortcode( 'show_if_has_value', 'func_show_if_has_value' );
 * Add a custom shortcode to display enclosed content only if the supplied advanced custom field has a value.
 * Sample usage: [show_if_has_value fieldname="whatever"]content[/show_if_has_value]
 * @param array $atts An associative array of attributes, or an empty string if no attributes are given.
 * @param string $content The enclosed content.
 * @return void|string Enclosed content if custom field is populated and nothing if otherwise.
function func_show_if_has_value( $atts, $content = '' ) {

	if ( class_exists( 'acf' ) && get_field( $atts['fieldname'] ) ) { // if the custom field has some value
		return $content; // show the enclosed content.
	} else { // otherwise
		return ''; // nothing.


Step 2

In the Oxygen editor add a Shortcode Wrapper component.

Full shortcode:

[show_if_has_value fieldname="twitter_url"][/show_if_has_value]

Replace twitter_url with the name of your custom field.

Place other components inside this Shortcode Wrapper and these will be output only if the specified field is populated.


Watch the video at the beginning of this article for a detailed walkthrough.

That’s it!

Need help implementing a tutorial in your site or want to hire me for custom work?


Find the article helpful and wish to donate?



You need to be logged in to view and post comments.
Not a member yet? Join here.
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram
%d bloggers like this: