Well, I’ve found a solution. If you’re using pages and you’ve want a static home page then try the following to get the 404 working anything like normal.
- Create a page called DO NOT DELETE and publish it.
- Make a note of the ID of the DO NOT DELETE page.
- Go to DESIGN / THEME EDITOR / SIDEBAR.
- Find wp_list_pages and add the parameter “exclude=11”
- In my instance the ID was 11 but change yours to the ID noted in step 2.
- Go to SETTINGS / READING and select STATIC PAGE.
- Set FRONT PAGE to ‘home’.
- Set POSTS PAGE to the DO NOT DELETE page.
This should now allow you to have pages only, set a static home page and have the 404.php page show up faithfully on error. Because of step 4 above the DO NOT DELETE page will not show up in the navigation system so your visitors will be unaware of it.
I know it seems convoluted but it works.