I need opposite of this:
<?php if ( get_post_meta($post->ID, 'price_list_category1', true) ) : ?>style="display:none;"<?php endif; ?>
In other words I want style="display:none;"
only when meta data doesn’t exist.
I thought it would be straightforward like if ( get_post_meta($post->ID, 'price_list_category1', true
but this true/false turns out to be a completely different stuff.
any ideas?
Thank you.
You could use theempty
function inside yourif
as such :The above returns an error, you should assign the return value to a variable. See my edit below.
Warning
empty
might not be the best option depending on the values you store in the meta. Values likefalse
,0
etc… will be considered empty.Check the PHP manual for the full list of values that are considered empty.
Edit
You can try assigning the meta to a variable, and using that in the
if
statement.And then…
You can use
metadata_exists();
(worked for me)for checking for any post meta and the do whatever you want.I found this via searching for a solution myself, but it dawned on me the answer is very simple. You simply need to check if the value is empty, if it is then echo nothing – if it has content, then display the content – the code i used is below and can be tailored accordingly to anyone who needs to use it.
Here it is written: https://developer.wordpress.org/reference/functions/get_post_meta/#user-contributed-notes
get_post_custom_keys Returns an array containing the keys of all custom fields of a particular post or page. For me, this is the best solution 🙂