Wordpress 中的短代码导致 Openserver 死亡

Shortcode in Wordpress causes Openserver death

所以我在 Wordpress 中有一个自定义 PHP 页面显示一些内容:

<? while(have_posts() ) : the_post(); ?>
  <?the_content();?>
<? endwhile; ?>

我需要显示与此内容相关的新闻列表,所以我为此写了一个简码:

function generate_program_news(){
 $news_args = array( 'posts_per_page' => 5, 'cat' => 4);
 $news_query = new WP_Query($news_args);
 $news_data;
 while( $news_query->have_posts() ) {
   $news_date = get_permalink();
   $news_title = the_title();
   $news_data = "<a>" .$news_date. ": " .$news_title. "</a>";
 }
 wp_reset_postdata();
 return $news_data;
}

add_shortcode('program_news','generate_program_news');

但是当我添加 [program_news] 短代码并尝试访问我使用它的页面时,整个网站都死掉了,直到我重新启动 OpenServer。我做错了什么?

while( $news_query->have_posts() )

你必须输入

$news_query->the_post();