Use a templating engine like pug.
With includes, you can separate the list of links into an additional file, so you only have to modify them in one place.
After that, use the CLI to render/generate your static HTML files.
Yes, you can serve .pug files with apache, but in this case, you need Node in addition to or instead of your php.
For this reason, I referred to the Pug CLI. With this tool, you can convert the .pug files to .html files.
For example the following project directory:
project-name
| - dist
| - src
| | - index.pug
| | - _assets
| | | - navigation.pug
With the command pug src -o dist you generate:
project-name
| - dist
| | - index.html
| - src
| | - index.pug
| | - _assets
| | | - navigation.pug
But it is like @maruru said. Pug is another language and it is hard to implement it in this state of the project. I used Pug as an example because I'm familiar with it.
There are other template languages with a more html like syntax. A quick google search and I found Twig for php and ejs (with CLI).