Can my iPhone search for Wi-Fi only when in a specific location?
No, there is no way to do this.

Also, wifi is only searched for when you actually go to use your phone. It won't search for wifi networks constantly while the phone is in your pocket. Your iPhone is very good at managing its own battery usage. Checking what SSIDs exist is very battery efficient.

Lastly, you can turn off that annoying prompt that comes up whenever networks are discovered. It'll still automatically connect to wifi networks that you trust, but that dialog will never appear.