Basic structure

Website with three separate sections displayed on iPhone

Author: Dawid Adach


    Basic structure.

    We will divide our site into three sections, header, main, and footer.

    Site divided into three sections
  1. Let's create 2 new files header.php and footer.php. index.php which we have created before will take care of main part. Now fill files with content as below:
  2. header.php
    <!DOCTYPE html>
    <html lang="en">
        <!-- Required meta tags always come first -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        <meta http-equiv="x-ua-compatible" content="ie=edge">
            <?php bloginfo( 'name'); ?>
        <?php wp_head(); ?>
    <?php wp_footer(); ?>

    New functions

    We used 3 WordPress functions:
    bloginfo( 'name') - prints out our blog title.

    wp_head() - this function is a placeholder for custom code provided by different plugins. If the certain plugin requires some additional code in the header, it will add in this placement. This makes our template compatible with 3rd party plugins.

    wp_footer() - similar to wp_head(), this function makes our template compatible with plugins. Whenever certain plugin requires adding some code (usually java script) to our template, it will be added in the same place where we put wp_footer() function.

    In order to combine header.php and footer.php, we will use another two functions from WordpPress.

  3. Let's replace code from the previous lesson in index.php with following functions:
  4. index.php
    <?php get_header(); ?>
    <?php get_footer(); ?>

    Such a structure allows us to avoid duplication of code. WordPress supports multiple "post type" like post, page, gallery etc. Splitting header and footer apart from content save us a lot of code and time. Regardless of the "middle" part of the website, header and footer will always remain the same.

Lesson summary

We have created 2 new files, header.php and footer.php which are loaded on top and the end of the index.php respectively.

Previous lesson Download Next lesson

Spread the word:
Do you need help?: Use our support forum

About author

Dawid Adach
For more than 5 years Dawid worked as an IT Consultant specializing in SOA/EAI/ESB in the banking domain. He gained experience working in countries like Netherlands, Belgium, Poland and India developing enterprise-class systems for the most prestigious companies. Since co-founding & in 2016 he has been using and teaching technologies such as Angular, TypeScript, PHP, AJAX, Mongo, SQL, Hadoop Stack, Virtualization, Automation and many others...