I'm showing a grid of posts with get_posts() function and trying to control category parameter value from a custom field.
my code works if category parameter gets value from echo function for example:
$args = array(
'numberposts' => 6,
'category' => '<?php echo "25";?>'
,);
but it doesn't when I do something like
$catid = get_field( "id_of_product_category" );
$args = array(
'numberposts' => 6,
'category' => '<?php echo $catid;?>'
,);
at the same time I'am able to
echo $catid;
on the page and it does show correct value set in custom field.
Why I can't get it to work to change category parameter then?
I just realized that your get_field() is missing a second parameter. If you don't specify the specific id of the post that has a field with that name, it will most likely default to the current post's value if it exists. So you basically need to loop through your get_posts() to get the current post that would have the value you are seeking, then do the functionality you are looking for. Exposing more of your could would be helpful.
// Get your custom field from ACF based on field name and the ID of the post
$catid = get_field( "id_of_product_category", $post->ID );
$args = array(
'numberposts' => 6,
'category' => $catid
);