WordPress и параметры $_GET
Это странная проблема, с которой я раньше никогда не сталкивался в WordPress.
У меня есть сайт с включенными постоянными ссылками.
URL может быть http://mysite.com/page-name/?anyParamName=testing
затем, когда я использую print_r($_GET);
или $_GET["anyParamName"]
, я получаю пустой массив или ничего соответственно.
Обычный PHP-файл работает нормально, так что это не проблема сервера. Делает ли WordPress что-то с перенаправлением GET-параметров? Действительно озадачен этим.

Для пользовательских параметров вам необходимо зарегистрировать их в WordPress:
add_action('init','wpse46108_register_param');
function wpse46108_register_param() {
global $wp;
$wp->add_query_var('anyParamName');
}
Затем значение параметра 'anyParamName' можно получить с помощью функции get_query_var
$anyParamNameValue = get_query_var('anyParamName');

Верно, но он может извлечь значение до того, как $_GET
будет очищен плагином/темой (предполагая, что именно это и происходит).

Знаю, что это старый вопрос, но мы можем свободно получать доступ к любым POST/GET параметрам внутри хука 'init' (до того, как WordPress их изменит), и это задокументировано здесь, смотрите:
add_action( 'init', 'process_post' );
function process_post() {
if( isset( $_POST['unique_hidden_field'] ) ) {
// обрабатываем данные $_POST здесь, читаем и изменяем по необходимости
}
}

Для того чтобы иметь возможность добавлять и работать с собственными пользовательскими переменными запроса, которые вы добавляете к URL-адресам (например: "http://example.com/some_page/?my_var=foo"
— например, с использованием add_query_arg()), вам необходимо добавить их к публичным переменным запроса, доступным для WP_Query. Они формируются при создании экземпляра WP_Query, но, к счастью, передаются через фильтр 'query_vars', прежде чем будут использованы для заполнения свойства $query_vars класса WP_Query.
Таким образом, чтобы сделать вашу новую пользовательскую переменную запроса доступной для WP_Query, подключитесь к фильтру 'query_vars', добавьте вашу переменную запроса в массив $vars, который передаётся фильтром, и не забудьте вернуть массив в качестве результата вашей функции фильтра. Смотрите пример ниже:
function add_query_vars_filter( $vars ) {
$vars[] = "my_var";
return $vars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );
Для получения дополнительной информации обратитесь к https://codex.wordpress.org/Function_Reference/get_query_var

У меня была такая же проблема:
- Страница, к которой я обращался, имела постоянную ссылку /focus.
- В основной папке находилась дочерняя папка с таким же именем (focus).
Загружалась правильная страница (а не папка), но массив _GET был пустым. Я переименовал папку (в файловой системе), и теперь массив _GET заполняется, как ожидалось.
