If you are using the main C++ distribution of wxWidgets, Feel free to ask any question related to wxWidgets development here. This means questions regarding to C++ and wxWidgets, not compile problems.
The wikipedia article is incorrect. #pragma once also works on GCC 3.4+ (it was un-deprecated) and inclusion guards and #pragma once aren't quite the same thing. The result is the same but #pragma once improves compilation speed (see this Games from Within article for details). Use both to get the speed of #pragma once but still fallback to inclusion guards for compilers which don't support it.
Yes, it's meant for "allowing various instructions to be given to a compiler". It is standard, but there may be some features present in compiler 'a' that isn't in compiler 'b', since it is implementation defined. IIRC only VC has #pragma once.
Most compilers wont stop and give an error if they encounter an unknown pragma, most will just issue a warning.
To clarify what lowjoel was saying: "#pragma" is part of the standard. "#pragma once" is not. "#pragma" is for issuing compiler specific directives not covered by the standard. VC, for instance, supports warning disabling like this: "#pragma warning ( disable : 4101)". Also, as I said before, VC isn't the only compiler that supports "#pragma once". I know both GCC 3.4+ and Metrowerks support it. Others probably do as well.
I generally use the #ifndef #defne header guards and then #pragma once beneath it. I don't think there is any adverse affect to using both - get the compile time boost if #pragma once is supported, if not, you still have inclusion guards.