I am wanting to hide a snippet of code if a specific value is checked using ACF “checkbox”
I have the following code
<?php if ( !in_array( 'START wages-through-ages', get_field('tours') ) ) { ?>
my stuff
<?php } ?>
The code executes as planned but i also get this error
“Warning: in_array() expects parameter 2 to be array, boolean given in /home2/actu/public_html/worksite.actu.org.au/wp-content/themes/worksite/single.php on line 198”
line 198 is the line of code above
Hi @dvize
If no checkbox value is selected, the get_field will return false. The in_array function expects an array, not false. This is why you see the error.
You need to write more bullet proof code like this:
$tours = get_field('tours');
<?php if ( !empty($tours) || !in_array( 'START wages-through-ages', get_field('tours') ) ) { ?>
my stuff
<?php } ?>
This had same error with code as is.. I then assumed that the top line needs php tags so i tried:
<?php $tours = get_field('tours'); if ( !empty($tours) || !in_array( 'START wages-through-ages', get_field('tours') ) ) { ?>
and
<?php $tours = get_field('tours');?>
<?php if ( !empty($tours) || !in_array( 'START wages-through-ages', get_field('tours') ) ) { ?>
this has stoped working and produced this error:
Warning: in_array() expects parameter 2 to be array, boolean given in /home2/actu/public_html/worksite.actu.org.au/wp-content/themes/worksite/single.php on line 199
also is there some way to be notified when you reply…
Hi @dvize
Sorry, the code should have looked more like:
<?php
$tours = get_field('tours');
<?php if( is_array($tours) && in_array( 'START wages-through-ages', $tours ) ): ?>
<?php // the user has selected 'START wages-through-ages' checkbox. Do nothing ?>
<?php else: ?>
<?php // my stuff ?>
<?php endif; ?>