I have the following function.php:
function getPublishedPosts() {
    // use global $conn object in function
    global $conn;
    $sql = "SELECT * FROM posts WHERE published=true";
    $result = mysqli_query($conn, $sql);
    // fetch all posts as an associative array called $posts
    $posts = mysqli_fetch_all($result, MYSQLI_ASSOC);
    $final_posts = array();
    foreach ($posts as $post) {
        $post['topic'] = getPostTopic($post['id']); 
        array_push($final_posts, $post);
    }
    return $final_posts;
}
and I am calling it to the other page with this:
<!-- THIS LOOP -->
  <?php $posts = **getPublishedPosts();** ?>
  <div class="content">
  <h2 class="content-title">Recent Articles</h2>
  <hr>
  <!-- more content still to come here ... -->
        <!-- Add this ... -->
      <?php $posts = getPublishedPosts(); ?>
      <?php foreach ($posts as $post): ?>
      <div class="post" style="margin-left: 0px;">
        <img src="<?php echo BASE_URL . '/static/images/' . $post['image']; ?>" class="post_image" alt="">
            <!-- Added this if statement... -->
        <?php if (isset($post['topic']['name'])): ?>
          <a 
            href="<?php echo BASE_URL . 'filtered_posts.php?topic=' . $post['topic']['id'] ?>"
            class="btn category">
            <?php echo $post['topic']['name'] ?>
          </a>
        <?php endif ?>
        <a href="single_post.php?post-slug=<?php echo $post['slug']; ?>">
          <div class="post_info">
            <h3><?php echo $post['title'] ?></h3>
            <div class="info">
              <span><?php echo date("F j, Y ", strtotime($post["created_at"])); ?></span>
              <span class="read_more">Read more...</span>
            </div>
          </div>
        </a>
      </div>
    <?php endforeach ?>
      </div>
However, when it is on the server, the page goes blank.
 
    