WordPress get_query_var ()

Я занимаюсь разработкой приложения WordPress, и мне нужно иметь возможность передавать параметры url с помощью функций WordPress. Я использую add_query_arg() для добавления параметра url. Однако, когда я пытаюсь получить переданное значение на другой странице, используя get_query_var() ничего не возвращается. Когда я использовал $_GET['var_name'] значения возвращаются.

Какова возможная причина этой ситуации? Я могу успешно добавить аргументы в url, но я не могу получить к ним доступ.

Мне удалось заставить get_query_var() работать. Чтобы использовать две функции успешно, вам нужно добавить vars запроса в массив запросов wss wordpress. Вот пример кода.

 function add_query_vars_filter( $vars ){ $vars[] = "query_var_name"; return $vars; } //Add custom query vars add_filter( 'query_vars', 'add_query_vars_filter' ); 

Теперь вы можете использовать get_query_var() и add_query_arg() следующим образом:

Добавьте запрос var и значение

 add_query_arg( array('query_var_name' => 'value'), old_url ); 

Получить значение var запроса

 $value = get_query_var('query_var_name'); 

Более подробную информацию и образцы кода можно найти в Codex: get_query_var и add_query_arg

Если вы проверите Кодекс, вы увидите, что вам действительно нужно немного поиграть, чтобы заставить WP начать читать строку запроса.

Codex (в разделе Custom Query Vars)

Выдержка:

Чтобы иметь возможность добавлять и работать с вашими собственными пользовательскими часами запросов, которые вы добавляете к URL-адресам (например: «mysite com / some_page /? My_var = foo» – например, с помощью add_query_arg ()), вам необходимо добавить их к публике переменные запроса, доступные для WP_Query. Они создаются, когда WP_Query создается, но, к счастью, передается через фильтр «query_vars», прежде чем они фактически используются для заполнения свойства $ query_vars WP_Query.