I have one from western union, so do I have to take it to a western union to get it cashed? Or can I take it to the post office with the thing I need shipped and have them cash it for me?
I don't think the Post Office will help you but I'm not certain of that. I believe they honor only their own money orders. Your best bet is your bank. Otherwise you'll need to locate a Western Union outlet.
Depending on where you live, you may or may not have Currency Exchanges. Where I live, Chicago there is many of these. I cash money orders at a Currency Exchange, never at a bank. I am almost sure that the post office would do nothing with your MO.