From how you've phrased your question I'm going to assume you've jumped in without much structured training in data science, so I'll answer at a fairly high level.
This is an inherent problem with image classification in that if your final layer only has food classes then whatever you feed in will always be classified as a type of food regardless of what is actually in the image.
There are a few techniques you could try. The simplest and fastest being using a pre-built classifier to screen the input data for the presence of "food" and then only using your own classifier to determine what type of food it is. Any of the open source imageNet networks would be a good step here - if that finds something with a food label then use your classifier to identify the category. This means you won't need to retrain although you'll be at the mercy of any errors in the pre-trained category classifier, which is outside of your control. Here's a good how to guide: https://www.learnopencv.com/keras-tutorial-using-pre-trained-imagenet-models/
Another option is to add a negative class to your data set consisting of non-food items that you label "other". This is probably trickier as you'd need to cover all the non-food categories that your network will see and ensure that it doesn't learn the background.
Take a look at your final level and make a call about whether to accept the top result or not. You're forcing a choice and these values may give a clue as to the level of error in the prediction.