How to add an extra, independent set of custom fields?

Custom fields are also known as post meta. Many things are stored as post meta, such as the ID of the featured image. You’ll have noticed that these do not show up in the custom fields section of your posts.

This is because these post meta values have keys beginning with an underscore. Similarly any post meta you set that also has an underscore at the start, will not appear in the custom fields section.

So your task now is to implement the User Interface for the options you want to present to the user. You would do this using custom meta boxes. Luckily this question and many variants of it have been asked by people wanting to create different kinds of meta box. For this reason I won’t go in to detail on that here when others have already done so.

This question and answer will give you the basic gist of what to do to create a custom meta box and how to save the value when the post is saved, but others may provide more information or cater to your specific UI needs.

A final note, when registering a metabox, you have to specify where it goes and what capability is needed to view it. This way you can show the box only to those users with the necessary access. For example, administrators and super administrators have the manage_options capability, but not editors. Users can also turn the boxes on and off using the screen options, or collapse them down and rearrange them. You do not need to do anything extra to get these UI features.