function post_loop() { ob_start(); // Query arguments $args = array( 'post_type' => 'post', 'posts_per_page' => -1, ); $data = new WP_Query($args); ?> <div class="row"> <?php if ($data->have_posts()): ?> <?php while ($data->have_posts()): $data->the_post(); ?> <div class="col-lg-4 col-md-4 col-sm-12 col-xs-12"> <div class="main-post"> <!-- Featured Image --> <div class="MainImg"> <div class="blog-fig"> <?php if (has_post_thumbnail()): ?> <?php the_post_thumbnail('full'); ?> <?php endif; ?> </div> </div> <!-- Post Excerpt --> <div class="blg-content"> <div class="blg-ttl"> <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> </div> <div class="blg-excerp"> <?php echo wp_trim_words(get_the_content(), 40, '...'); ?> </div> <div class="blg-btn"> <a href="<?php the_permalink(); ?>">Read More</a> </div> </div> </div> </div> <?php endwhile; ?> <?php else: ?> <p>No posts found.</p> <?php endif; ?> </div> <?php // Reset Post Data wp_reset_postdata(); return ob_get_clean(); } add_shortcode('wp_post_data', 'post_loop');