Intereting Posts
Как обрезать контент и сохранять HTML? Как получить имя и значение электронной почты из пользовательской формы и добавить ее в список подписчиков на мониторинг кампании? Предоставление посетителям доступа к странице с защитой паролем через внешний скрипт wpdb-> get_var – количество сообщений автора, мета значение Различные виджеты в боковой панели на страницах дочерних страниц? У меня есть рабочий стол и ноутбук. Каков наилучший способ перемещения между локальными установками? Каков наилучший практический процесс для нового веб-сайта и поддержания текущего рейтинга SEO? Использование данных WordPress в качестве входных данных для визуализации google Как установить плагин jQuery dotdotdot для WordPress? Изменение цвета фона в зависимости от родительской страницы? Дефисы против периодов в скрипте slug в wp_register_script? Отображаемое имя по умолчанию в качестве пользователя У меня есть старая версия jQuery. Как мне понять, откуда он? Режим веб-приложений оставляет пользователей застрявшими, когда следующие ссылки на изображения при использовании WPTouch с W3 Total Cache Показать сообщения дочерней категории в шаблоне

get_query_var против глобальных переменных запроса?

У меня есть запрос vars, определенный в functions.php, используя:

add_filter('init', 'add_query_vars'); function add_query_vars() { global $wp; $wp->add_query_var('profession'); } 

До сих пор, чтобы получить запрос var в шаблонах страниц, я использовал $profession = get_query_var('profession'); , Аналогичный пример $paged = get_query_var('paged'); также показан для переменной $paged на странице Codex для get_query_var() . Однако сегодня я узнал, что переменные запроса доступны как глобальные переменные. Все, что мне нужно сделать, это объявить global $profession; и я могу начать использовать значение переменной в любом месте шаблона. Это для меня, по-видимому, намного лучший способ доступа к часам запросов без накладных расходов на вложенные функции get_query_var() .

Есть ли веская причина использовать get_query_var() для извлечения запросов vars вместо доступа к ним в качестве глобальных переменных? Если нет, то почему get_query_var() даже существует?

Solutions Collecting From Web of "get_query_var против глобальных переменных запроса?"

get_query_var() – это оболочка для $wp_query->get($var); , Но глобальная $wp_query не всегда идентична той, которая была создана во время запроса. Это основная проблема с query_posts() .
И другие плагины также могут непреднамеренно переписывать эти переменные. Я видел, как плагины помещают $i в глобальное пространство имен …

И возвращаемые значения разные:

  • $GLOBALS['missing_var'] равно NULL если такой переменной нет. Строгая проверка типа: if ( NULL !== $GLOBALS['missing_var'] ) .
  • get_query_var('missing_var'); является пустой строкой, если эта переменная не существует. Строгая проверка типа: if ( '' !== get_query_var('missing_var') .

Когда другие программисты должны работать с вашим кодом, они всегда могут следовать за get_query_var() чтобы увидеть запасное значение. Это невозможно с глобальными переменными.

И тогда есть планы уменьшить количество глобальных переменных в WordPress. Используйте API (функция), и вы, вероятно, безопасны. Доступ к глобальным переменным, с другой стороны, может привести к проблемам.