Do players have to discard when a Knight card is played?
No, you don't lose half your hand if a knight card is played.
The rules for 'rolling a 7 and activating the Robber' state

every player who was more than 7 Resource Cards must select half (rounded down) of his Resource Cards and return them to the bank.
The you must move the robber Proceed as follows.....

then steps 1 and 2 are stated for stealing a resource.
The rules for a solider cards state

you must immediately move the robber.  See activating the robber and and follow steps 1 and 2

It does not state everyone loses cards if they have 8 or more.
To clarify the rules for losing cards if you have more than 8 are only triggered for rolling a 7 and in no other way.