The popular Advanced Custom Fields plugin for WordPress allows users not only to create extra fields and display them based on template / page / taxonomy etc, but it also allows for default input fields to be hidden with the same condition options.
To do this, go to ‘Custom Fields’ in the WordPress admin area and add a new group. Give it an appropriate title, and set the desired conditions.
At the bottom of this page, there are the often overlooked options to ‘Hide on screen’, which allows different elements to be hidden. By creating groups of hidden elements and conditions, different parts of the default WordPress edit display can be hidden. This shouldn’t be used over setting up custom posts properly.
If a lot of fields are being disabled on specific pages, it is a good idea to add a single ‘Message’ field under the ‘Layout’ section, to explain the absence of control that users will be expecting.