Warning: Undefined variable $post_id
Try this instead: $posts_with_category = new WP_Query( $args ); if( $posts_with_category->have_posts() ) { Instead of just checking if $posts_with_category is non-empty it checks if it’s an array of WP_Post objects. We don’t have line numbers to see where the error is being thrown. Is line 47 your return statement?