USA TODAY article recommends flying to Seville (SVQ) and then train, bus or car to Cádiz (90 minutes):
There is an airport in Jerez de la Frontera (XRY). Many flights connect through Madrid. There are some nonstop flights from European cities. The train from Jerez airport to Cádiz is 33 minutes.