You don't need a WiFi shield to do WiFi with an Arduino.
A working set-up is for example an Ardino UNO equipped with an official Ethernet shield ( more specifically with a W5100 Ethernet chip) and a little pocket route connected to the Ethenrnet shield.
I've used this and similar set-ups in several projects. The above is the standard that works to of the box with Aruino.
I am using a Teensy++2 with a WIZ812MJ in one project and recently designed what I jokingly call a Frankenduino http://ledshield.wordpress.com/2013/07/11/frankenduino-or-ueber-arduino/
that combines a Teensy3 with a WIZ820io ( with a W5200).
Not only is this less expensive overall compared to the original Arduino WiFi shield but also much faster to get to work. A commercial pocket router like the TP-Link TL WR702n router comes with a self explanatory web interface that allows you to configure the router quickly either as an AP or in client mode and you can do that from your iPhone without having to open and program Arduino code.
AFAIK No WiFi shield offers that!