I’ve set up a simple filter using Ajax so that the user can filter prices high to low.
The issue I’ve got is that my when the ajax call runs the data returns but is missing all the ACF fields.
This is my PHP code;
function cars_filter_function(){
$args = array(
'post_type' => 'cars',
'posts_per_page' => -1,
);
$args = array(
'orderby' => 'date', // we will sort posts by date
'order' => $_POST['sort_price'] // ASC or DESC
);
$query = new WP_Query( $args );
if( $query->have_posts() ) :
while( $query->have_posts() ): $query->the_post();
include(TEMPLATEPATH . '/includes/cars.php');
endwhile;
wp_reset_postdata();
else :
echo 'No posts found';
endif;
die();
}
Any ideas, please?
@ForbiddenChunk
You say data is returned, so I’m assuming title, permalink and post ID return ok?
What does cars.php include?
Do you declare your ACF fields on the template?
From memory, I think I had similar from an ajax call, does it work if you change your include to:
include( locate_template( 'includes/cars.php', false, false ) );
Hi @jarvis,
Thanks for replying, I managed to solve it using
get_field('tax_amount', $post_id)
and making sure the following was at the top;
`global $post;
$post_id = false;
if (defined(‘DOING_AJAX’) && DOING_AJAX) {
if (isset($_GET[‘post_id’])) {
$post_id = $_GET[‘post_id’];
}
} else {
$post_id = $post->ID;
}`