<?php
function allNews_shortcode() {
    ob_start(); // Start output buffering

	$news_args = array(
		'post_type' => array('post'),
		'posts_per_page' => 20,
		'category_name' => 'news, blog',
		);
	?>																
	<?php $news_query = new WP_Query($news_args);?>
		<?php if ($news_query->have_posts()) : ?>
		<div class="row hover-back">
			<?php while ($news_query->have_posts()) :
				$news_query->the_post();
				$categories = get_the_category();
			?>
			<div class="col-md-3 kpy-all-news hover-effect">
				<article>
					<div class="mb-3 border-0">
					    <a class="icon" href="<?= esc_url(get_permalink()); ?>">	<?php the_excerpt(); ?>	</a>
						<a href="<?= esc_url(get_permalink()); ?>"><h3><?php the_title(); ?></h3></a>
						
					</div><!-- card !-->
				</article>
			</div><!-- col !-->
			<?php endwhile;
				wp_reset_postdata();
			else :
				echo 'No news found.';
			endif;
			?>
	</div><!-- Row !-->
    <?php

    return ob_get_clean(); // Return the buffered content
}

// Register the shortcode
add_shortcode('all_news', 'allNews_shortcode');

?>