Felicidades por resolver el asunto, pero siempre considera utilizar lo que el propio sistema te da, osea, no es que esté mal, de hecho te funciona perfectamente, pero existe la función
get_query_var() que puedes usar en estos casos.
El código resultante no creo que sea muy distinto al que tienes, pero en caso de actualizaciones o cosas parecidas, ya estarías dentro del ámbito de WordPress...
Saludos.