I'm looking for a single word to describe a person who is a good wordsmith or orator, but who doesn't believe in the ideas behind their words. Any ideas?
Hypocrite fits the bill nicely.
From the Oxford Dictionary entry for "hypocrisy":
The practice of claiming to have higher standards or more noble beliefs than is the case.
A hypocrite is then a hypocritical person, or, a person that claims "to have higher standards or more noble beliefs than is the case."
That is, someone who says one thing and does another or believes another, or, "talks the talk" but doesn't "walk the walk".
A phony (MWD)
making a false show: such as (1) : hypocritical (2) : specious
In your context, I'd call them a parrot.
parrot, noun, 2. A person regarded as resembling a parrot in some way, esp. one who repeats the words or ideas of others mindlessly, mechanically, or without understanding. (OED)
1581 J. Bell tr. W. Haddon & J. Foxe Against Jerome Osorius ii. 107 Speake out Parrotte, in what place doth Luther subuerte the dueties of vertue?
1671 E. Howard Six Days Adventure i. 8 Soly: You may be Taken notice on for a Patriot of your countrey. Merid: A Parrot rather, for in my sence he talks by roat.
1809 M. Edgeworth Ennui vi, in Tales Fashionable Life I. 156 The mere puppets and parrots of fashion.
1837 R. W. Emerson Oration before Phi Beta Kappa Soc. 5 He tends to become a mere thinker, or, still worse, the parrot of other men's thinking.