Simple PHP Navbar

While working on a simple website that didn’t need any kind of CMS with it, I came up with a very simple way of creating a dynamic navigation bar with PHP. The code is pretty simple, but I’ve always done this manually before and this just makes it simple. So here it is.

First we create a function in PHP:

function createNav($title, $link){
   if("/".$link == $_SERVER['PHP_SELF']){
      return "<li id="current">".$title."</li>r";
   }else{
      return "<li><a href="".$link."">".$title."</a></li>r";
   }
}

And then this is how you call it:

echo createNav("Home","index.php");

So if you are on the page that navigation button relates to it will give you <li id="current">Home</li>. If you’re on any other page, it gives you <li><a href="index.php">Home</a></li>.

Easy enough. So just call that for each button you need between your <ul> tags:

<ul>
<?php
   echo createNav("Home","index.php");
   echo createNav("About","about.php");
   echo createNav("Products","products.php");
   echo createNav("Contact","contact.php");
?>
</ul>

I know it’s nothing spectacular, but it sped up the coding process for me once I figured it out, and it will certainly be a lot faster in the future if anything needs to be changed or added.

Leave a Reply