PHP Menu Include function to reuse an html block on multiple pages

When making websites frequently we want a navigation bar or menu to show on every page. Rather than repeating the code on every single page, which is virtually impossible to update and maintain, or worse, using frames, use PHP to automate this and build each page dynamically. PHP will just paste in the navigation or whatever you’d want represented on every page. To do this we use the php include function. You can use include() to show headers, footers, or any elements that you’d reuse on multiple pages. The include() function takes all the text in a specified file and copies it into the file that calls the include function. This is great for scalability and updating- instead of changing multiple files, only change one!
Here’s what a php include function looks like:
<?php include(“nav.php”); ?>

1. Make the actual nav you want.

2. Put it into a php file (or any type of file, html, txt, as long as it’s formatted as html)

3. Place the php in your page to ‘print’ the desired file into your final html page before the browser renders the page using the include function. This spits out html. The viewer’s only see html, as that’s all it is, the php created the html file- That’s why it’s called PHP: Hypertext Preprocessor.

The nav.php file:

<p id="fromMenuPhpFile"> <a href="home.php">Home</a> |
<a href="about.php">About Us</a> |
<a href="portfolio.php">Portfolio</a> |
<a href="contact.php">Contact Us</a>

The homepage.php:

&lt;?php include("nav.php"); ?&gt;
<h1>Welcome to my home page</h1>
home page text lorem ipsum

And here’s a sample site with a nav bar containing 4 pages included through php for Home, About, Portfolio and Contact.


This entry was posted in tutorial and tagged , , , , , . Bookmark the permalink. Both comments and trackbacks are currently closed.
  • RgCode

    thnx ….. you helped me alot :)

  • Cherish

    I’ve spent almost whole day trying to make it right. Thank you!

  • Staffan Henningsson

    And if we want to make the menu more dynamic, say, by making the current page unlinkable, then we just add a conditional statement like ‘if’ and check e.g. the title of the page. We could also change the menu in other ways depending on the current page.

    An example;
    Say I want the menu on my Poetry page. Since I set the title by using
    My Page –

    I can use $title, i.e. Poetry, which I also happen to call the page, poetry.html, to change the way PHP generates the menu. I haven’t actually done this yet so I won’t go into how, but it should be pretty simple.

  • Recent Posts


    Add Links to Twitter Mentions, Hashtags, and URLs with PHP

    This gem helped me out today as I was working with the Twitter API to create a custom WordPress widget. I was about to do exactly this and was not looking forward to it, luckily I did a quick search and found this webtips post. Thanks! If you’re using the Twitter v1.1 API to fetch […]

    Online regex tester and debugger: JavaScript, Python, PHP, and PCRE

    Stumbled on a great regex tool today. An explanation of your regex will be automatically generated as you type. Detailed match information will be displayed here automatically. via Online regex tester and debugger: JavaScript, Python, PHP, and PCRE. Tweet

    CSS Dig

    A chrome extension for analyzing your CSS. Check your properties (and reuse – are they following DRY principles?) and your CSS selectors (and their specificity). Analyze your CSS in a new way. Consolidate, refactor, and gawk at the 37 shades of blue your site somehow ended up with. Take a look at all your CSS […]

    How to use solid web principles to justify what you were going to do anyway | A List, A Fart

    Imitation may be the sincerest form of flattery, but mockery must be the biggest sign of mainstream… And this is a good thing,, the de facto web publication for web professionals, now has a parody site: Tongue in cheek, and sarcastic, but sadly, sometimes not very far from the truth… In this era of […]

    Add Shortcode with Add Media Button

    This code snippet really helped me today and since the post doesn’t have commenting enabled, I wanted to say thanks here! Working on building a WordPress plugin that generates shortcodes and wanted an interface for the user to create their own with a wizard of sorts, so using a media button, shortcode and thickbox all […]

    A Developer’s Guide to Contributing to WordPress Core

    Here’s a great post from the team at delicious brains, the same team who brings us WP Migrate DB Pro for all our wordpress database migration needs (and do a bang up job I might add). They discuss all the in and out of working with trac and the ticketing system as well as setting […]