WordPress y parámetros $_GET
Este es un problema extraño que nunca antes había encontrado con WordPress.
Tengo un sitio con enlaces permanentes habilitados.
La URL puede ser http://mysite.com/page-name/?anyParamName=testing
entonces cuando uso print_r($_GET);
o echo $_GET["anyParamName"]
obtengo un array vacío o nada respectivamente.
Un archivo PHP puro funciona bien, así que no es un problema del servidor. ¿WordPress hace algo con la reescritura de los parámetros get? Esto realmente me tiene desconcertado.

Para parámetros personalizados debes registrarlos con WordPress:
add_action('init','wpse46108_register_param');
function wpse46108_register_param() {
global $wp;
$wp->add_query_var('anyParamName');
}
Luego el valor de 'anyParamName' puede ser obtenido con get_query_var
$anyParamNameValue = get_query_var('anyParamName');

Cierto, pero podría extraer el valor antes de que $_GET
sea vaciado por un plugin/tema (asumiendo que eso es lo que está pasando).

sé que esta es una pregunta antigua, pero podemos acceder libremente a cualquier parámetro post/get dentro del hook 'init', (antes de que WordPress lo cambie) y eso está documentado aquí, mira:
add_action( 'init', 'procesar_post' );
function procesar_post() {
if( isset( $_POST['campo_oculto_unico'] ) ) {
// procesa los datos $_POST aquí, léelos y modifícalos como desees
}
}

Para poder agregar y trabajar con tus propias variables de consulta personalizadas que añades a las URLs (ej: "http://ejemplo.com/pagina/?mi_variable=foo"
- por ejemplo usando add_query_arg()) necesitas agregarlas a las variables de consulta públicas disponibles para WP_Query. Estas se construyen cuando WP_Query se instancia, pero afortunadamente se pasan a través del filtro 'query_vars' antes de que se usen para poblar la propiedad $query_vars de WP_Query.
Así que, para exponer tu nueva variable de consulta personalizada a WP_Query, engancha el filtro 'query_vars', añade tu variable de consulta al array $vars que pasa el filtro, y recuerda devolver el array como salida de tu función de filtro. Mira abajo:
function add_query_vars_filter( $vars ) {
$vars[] = "mi_variable";
return $vars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );
Para más detalles por favor revisa https://codex.wordpress.org/Function_Reference/get_query_var

Tuve el mismo problema:
- La página a la que accedí tenía el permalink /focus.
- La carpeta principal tenía una subcarpeta con el mismo nombre (focus).
Se cargaba la página correcta (no la carpeta), pero los parámetros _GET estaban vacíos. Renombré la carpeta (en el sistema de archivos) y ahora el array _GET se obtiene como se esperaba.
