Intereting Posts
Запланированное событие не срабатывает Пользовательские RSS-каналы и почтовые метаданные Отдельная таксономия типа персонализированного сообщения по запятой Что такое стартовые темы WooCommerce? как добавить поле подписки на продукт в плагине woocommerce Отображение в повторяющихся метабоксах с использованием CMB2 Как WordPress генерирует URL-пули? is_archive () возвращает false на странице архивов Action Hook Внутри WordPress Plugin Shortcode Предупреждение. Невозможно изменить информацию заголовка. Как решить эту проблему? WooCommerce – добавление пользовательских полей для выставления счета Модификация того, как данные контролируются / отображаются и сохраняются Добавить меню фильтров в список сообщений администратора (настраиваемого типа) для фильтрации сообщений по пользовательским значениям полей Измените поведение тега <! – more -> Как определить, какой экран / вспомогательный экран администратора я просматриваю сейчас

Производительность с помощью автозагрузки и таблицы опций

Я играю с столбцом autoload таблицы options . Я не нашел много информации о том, как используются автозагружаемые значения. Я попробовал print_r($GLOBALS) и увидел, что параметры автозагрузки хранятся в $GLOBALS['wp_object_cache']->cache['options']['alloptions'] .

Есть ли другой способ доступа к этим переменным?

Предположим, мне нужно получить доступ к опции my_option , которая была настроена на автозагрузку, несколько раз в разных шаблонах (например, один раз в header.php , один раз в footer.php ), какой метод рекомендуется?

  1. Это нормально, что я извлекаю его из массива $GLOBALS (поскольку значение уже здесь)
  2. Должен ли я использовать get_option('my_option') один раз и снова глобализовать переменную
  3. Используйте get_option('my_option') каждый раз (что я не вижу смысла делать)
  4. Что-то другое

Solutions Collecting From Web of "Производительность с помощью автозагрузки и таблицы опций"

Я не нашел много информации о том, как используются автозагружаемые значения.

Нет специального случая для автозагружаемых параметров, они используются так же, как и обычные параметры, но позволяют выяснить, что означает столбец autoload таблицы options . Этот столбец определяет, нужно ли нам извлекать опцию на этапе инициализации запроса или мы должны выбрать опцию только по требованию.

Но когда эта автозагрузка происходит и какая функция? Все параметры автозагрузки загружаются и кэшируются функцией wp_load_alloptions , которая is_blog_installed функцией is_blog_installed в начале каждого HTTP-запроса, обрабатываемой WP.

Подведем итог: опция автозагрузки – это та же самая опция, но загружаемая в начале обработки HTTP-запроса WP.

Предположим, мне нужно получить доступ к опции … какой метод рекомендуется?

  1. Это плохой подход, чтобы получить его из $GLOBALS напрямую, вместо этого используйте get_option
  2. Глобализация пользовательских переменных не приветствуется и рекомендуется делать это как можно меньше
  3. С моей точки зрения, это лучший вариант для вас
  4. Даже не думай о чем-то другом 🙂

Почему использовать функцию get_option каждый раз – лучший вариант? Потому как:

  1. Первое и самое важное, потому что : вы можете быть уверены, что он вернет обновленное значение, каждый раз, когда вы его вызываете.
  2. Он будет кэшировать его для повторного использования в будущем.
  3. Это позволяет другим плагинам и темам подключить ваш вариант, подключив фильтр option_optionname .
  4. Он получит выбор, если он еще не загружен.