From someone who has been on both sides of this, your best bet is to get references.
Don't waste your time with programming tests. Coders are familiar with tests and do them well, but may not do your job well. Furthermore, for those complaining about people looking up the answers, who cares! The end result is most important, and how they get their answers doesn't matter. Of course, they should know what polymorphism is (as suggested by another answer) and other basics, I'm not suggesting they shouldn't. I'm just saying that as someone who works with 15 given languages at any time, sometimes the substr() parameter order is different in one language than the other, and I look it up. That makes no difference on the end result.
Ask your developers how they would split up the project. If you are not familiar with this, then let those doing the work decide how to do it. It may save all of you a lot of time.
Hiring a designer is fine. Not a lot of web programmers are brilliant at design, but they should at least know how to make a good looking site. If you check references, you'll be fine with this.
Regarding the comment about any good programmer is already employed... that is not a hard and fast rule in this economy, but something to consider. When I do freelance work, I don't take on many clients. I haven't been looking for clients in 6 months... taking a bit of a break... but I assure you I could do good work.
For comment about using an open source framework: This is a fine idea if a framework makes sense in your situation. Most of the time, you will waste more time trying to hack WordPress into something that you want, and it won't be all that usable at that point. Reinventing the wheel is bad. Making a wheel into a microwave oven is a waste of time. Use what makes sense for your situation and let your developer help you decide that.
Check the work they've done in the past. Have a conversation with them. Get specific. Ask them specifically what they would do for you. If they can answer you, then you have a good candidate. If they can't, look elsewhere. Check their references. If you do these things, you will get solid developers. It really is that simple.