Я никогда не использовал API-интерфейс Transient и задавался вопросом, есть ли у кого-нибудь рекомендации о том, когда его использовать. Статья Кодекса предполагает , что в качестве разработчика темы я мог бы задать каждый новый WP_Query()
как переходные; Я предполагаю, что то же самое можно сказать и о прямых запросах $ wpdb и query_posts()
. Это излишне? И / или есть ли другие места, которые я должен использовать по умолчанию?
Я часто использую плагины для кеширования на своем сайте (обычно W3 Total Cache), и кажется, что использование транзиентов может повысить эффективность плагина, но я не хочу сходить с ума, оборачивая все в переходные процессы, если это не лучшая практика.
Ответы:
Переходные процессы хороши, когда вы делаете сложные запросы в своих темах и плагинах. Я склонен использовать переходные процессы для таких вещей, как меню и показывать другие вещи, такие как твиты из Twitter, например, на боковой панели. Я бы не стал использовать их для абсолютно всего, поэтому для временных фрагментов данных, которые можно кэшировать.
Имейте в виду, что если вы используете что-то вроде Memcached с переходными процессами, то вы заметите значительное увеличение производительности. Правило для переходных процессов заключается в том, чтобы не использовать их для данных, срок действия которых не должен истекать, поскольку они действительно предназначены только для временных данных, и имейте в виду, что переходные процессы не всегда хранятся в базе данных.
Некоторые использования для переходных процессов :
Эта статья очень информативна с быстрыми тестами, показывающими, как переходные процессы могут ускорить ваш сайт, и даже содержит несколько примеров. В этой другой статье также есть несколько замечательных примеров использования переходных процессов, которые могут помочь вам понять, для чего их использовать.
источник
В WordPress есть несколько механизмов кеширования, и их механизмы отличаются в зависимости от выбора кеша объектов (нативного или нет):
В двух словах, это означает, что переходные процессы всегда постоянны (будут существовать между загрузками страниц, в отличие от Cache), но будут использовать настраиваемое хранилище, если оно предусмотрено (в отличие от Options).
Это делает переходные процессы наиболее универсальным выбором для кэширования.
Однако с гибкостью сопутствует сложность токов, и с ними связано немало нюансов (таких как ограничение длины имени, различное поведение с истечением срока действия и без него, отсутствие сборки мусора), которые делают их более сложными, чем они кажутся.
В целом:
источник
Я думаю, что код из Sterling можно улучшить, не вызывая функцию get_transient дважды. Вместо этого сохраните первый результат во временной переменной. Потому что идея Transient API заключается в скорости ;-)
источник
Краткий ответ: Вы должны использовать его, когда / где вы можете.
Длинный ответ:
Переходные API для кеширования. Таким образом, вы хотите использовать его как можно больше. Вы можете написать функцию, которая сделает это за вас.
Это не излишне, и если все сделано правильно, получается довольно элегантно:
источник
Транзитный API действительно полезен, когда вы выбираете данные из внешних источников, таких как Facebook, Twitter.
Чтобы получить более четкое представление о том, что такое Transients API и в чем отличие от функции кэширования WordPress, я рекомендую посмотреть доклад Отто и Наника из WordCamp San Francisco 2011
источник