This is such a good question! (I'm new to Craft, and am very surprised this isn't possible out-of-the-box.) I figured out a hacky but not-too-crazy way to hide entry types from the select menu (as opposed to an event that prevents it from being saved after it is selected, which is a bad user experience):
- Install this nifty Control Panel CSS plugin
- Figure out the entry type id (look in the database or inspect the source of the dashboard page and see what the option values are in the entry types dropdown).
Add some CSS like the following to that plugin's CP page:
#entry-form #entryType option:not(:checked)[value="4"] { display: none; }
- Add as many of those lines as you need for each of your entry types you want to hide.
Or if you'd rather go off the entry name instead of id (or you don't want to rely on those CSS3 selectors due to old browser support), you could achieve the same thing with some jquery, using the Control Panel JS plugin:
$(function() {
var hiddenEntryTypes = [
'Blog Index',
'Employees Index',
'Some other entry type name'
];
$('#entry-form #entryType option:not(:selected)').each(function() {
if (hiddenEntryTypes.indexOf($(this).html()) > -1) {
$(this).hide();
}
});
});