Я занимаюсь разработкой приложения 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.