To start out: Not WordPress! Just plain old PHP. Here’s what I’m trying to do:
I’ve got a horizontal navigation bar at the top of my page with the links ‘Home, About, Info, Contact’
Most of the pages also have a vertical navigation bar, the sidebar.
If I’m on the Home page, no sidebar needs to be shown.
If I’m on the About page there has to be a sidebar with various other subjects. The Contact page needs to show a sidebar with a Route Description and Contact Form link etc.
I was thinking about achieving this with $GLOBAL variables and put something like $GLOBAL['sidebar] = 'home' $GLOBAL['sidebar'] = 'contact' etc… on top of every page. In the PHP file that would render my sidebar I would use an if structure to see what sidebar needs to be rendered. But using global variables is something I’ve always been taught is wrong and shouldn’t be used. After that, my mind drifted to $SESSION variables, but that would actually be exactly the same but with some extra concerns like session_start() etc.
I’m self-taught in PHP so I don’t know what could be best used to solve this particular (and I presume very common) “issue”. Any insights about this matter would be greatly appreciated. Thanks.
The solution will depend a lot on how you’ve set up your code structure already, but in more general terms the way I usually do it is to:
Include the sidebar as part of your template included on every page.
Set up your sidebar along the lines of this:
Then at the top of each page make sure you define the array
$sidebarModules. Something like:I’m not sure if this is the best solution, but it’s worked well for me in the past.
Edit:
or do it more efficiently if you’re templates are named in a standard convention, e.g.: