You can use something like
\DeclareOption*{%
\ClassWarning{mythesisclass}{Unknown option `\CurrentOption' ignored}%
}
before processing the options and loading the class. The warning is optional, but it's nice to let the user know that something is not being passed through in the usual way.
What this does is ignore all options that are not explicitly declared, so any options that you do want to be passed on must be defined with \DeclareOption
.
Here's an example snippet from a class of mine:
\DeclareOption{10pt}{\PassOptionsToClass{10pt}{memoir}}
\DeclareOption{11pt}{\PassOptionsToClass{11pt}{memoir}}
\DeclareOption{12pt}{\PassOptionsToClass{12pt}{memoir}}
\DeclareOption{final}{\PassOptionsToClass{final}{memoir}}
\DeclareOption{draft}{\PassOptionsToClass{draft}{memoir}}
\DeclareOption*{%
\ClassWarning{mugsthesis}{Unknown option `\CurrentOption' ignored}%
}
\ExecuteOptions{12pt,final} % defaults
\ProcessOptions\relax
\LoadClass[letterpaper,oneside]{memoir} % options here are fixed; no changes allowed