WordPress e Parametri $_GET
Questo è un problema particolare che non avevo mai incontrato prima con WordPress.
Ho un sito con i permalink abilitati.
L'URL può essere http://mysite.com/page-name/?anyParamName=testing
quando uso print_r($_GET);
o echo $_GET["anyParamName"]
ottengo rispettivamente un array vuoto o nessun output.
Un file PHP puro funziona correttamente quindi non è un problema del server. WordPress fa qualcosa con il reindirizzamento dei parametri get? Sono davvero perplesso da questo comportamento.

Per parametri personalizzati dovresti registrarli con WordPress:
add_action('init','wpse46108_register_param');
function wpse46108_register_param() {
global $wp;
$wp->add_query_var('anyParamName');
}
Quindi il valore di 'anyParamName' può essere trovato con get_query_var
$anyParamNameValue = get_query_var('anyParamName').

questo non dovrebbe avere nulla a che fare con il fatto che $_GET sia vuoto..

Vero, ma potrebbe estrarre il valore prima che $_GET
venga svuotato da un plug-in/tema (supponendo che sia ciò che sta accadendo).

Sappi che questa è una vecchia domanda, ma possiamo accedere liberamente a qualsiasi parametro post/get all'interno dell'hook 'init', (prima che WordPress lo modifichi) e questo è documentato qui, guarda:
add_action( 'init', 'process_post' );
function process_post() {
if( isset( $_POST['unique_hidden_field'] ) ) {
// elabora qui i dati $_POST, leggi e modifica come desideri
}
}

Per poter aggiungere e lavorare con le tue variabili di query personalizzate che aggiungi agli URL (es: "http://example.com/some_page/?my_var=foo"
- ad esempio utilizzando add_query_arg()) è necessario aggiungerle alle variabili di query pubbliche disponibili per WP_Query. Queste vengono costruite quando WP_Query viene istanziato, ma fortunatamente vengono passate attraverso un filtro 'query_vars' prima di essere effettivamente utilizzate per popolare la proprietà $query_vars di WP_Query.
Quindi, per esporre la tua nuova variabile di query personalizzata a WP_Query, aggancia il filtro 'query_vars', aggiungi la tua variabile di query all'array $vars che viene passato dal filtro, e ricordati di restituire l'array come output della tua funzione di filtro. Vedi sotto:
function add_query_vars_filter( $vars ) {
$vars[] = "my_var";
return $vars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );
Per ulteriori dettagli consulta https://codex.wordpress.org/Function_Reference/get_query_var

Ho avuto lo stesso problema:
- la pagina che ho visitato aveva il permalink /focus.
- la cartella principale aveva una sottocartella con lo stesso nome (focus).
La pagina corretta veniva caricata (non la cartella), ma i parametri _GET erano vuoti. Ho rinominato la cartella (nel file system) e ora l'array _GET viene popolato come previsto.
