Есть ли опасность в удалении всех переходных процессов?

9

У меня есть большой сайт для клиента, и, поскольку это действительно настраиваемая установка WordPress с множеством расширений функциональности, я не могу использовать плагины для кэширования.

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

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

Не могли бы вы создать функцию, где я удаляю их все сразу (со списком имен переходных процессов), или можно просто удалить все переходные процессы на сайте?

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

Ура, фишки

fischi
источник

Ответы:

6

Для разработки я бы посоветовал всегда работать с WP_DEBUGset to trueи делать следующее:

$key = 'transient_key';
if( !WP_DEBUG && ( false !== ($transient = get_transient($key)) ){

   /* Generate transient manually */
   $expiration = 24*60*60;//How long to keep for
   set_transient($key,$transient, $expiration);
}

В целом - это должно быть хорошо, удаляя переходные процессы, поскольку они никогда не должны предполагаться в базе данных.

Стивен Харрис
источник
спасибо @stephen, я использовал это решение на этапе разработки, но очистил его на этапе рефакторинга перед началом работы. не следовало этого делать;) но по вашему опыту, были ли у вас когда-либо проблемы с удалением переходных процессов вручную?
fischi
:) спасибо за информацию об удалении переходных процессов. я думал что-то подобное, но не был полностью уверен.
fischi
1
Нет, у меня никогда не возникало проблем с удалением переходных процессов вручную - за исключением того, что надоел им и использовал этот подход :).
Стивен Харрис
1

Вы должны подключать различные действия, которые выполняются при обновлении, чтобы очистить и обновить переходные процессы. Например, когда обновляется меню навигации, wp_update_nav_menuзапускается действие, подключите к нему функцию, чтобы обновить переходный процесс меню навигации.

Milo
источник
спасибо @Milo, это хорошая идея, но она мне не подходит, так как переходные процессы не только влияют на меню. там постоянно добавляется много контента (точек интереса на карте), и сайт довольно занят - так что я создаю, например, список новейших POI только один раз в час, а не только наwp_update_nav_menu
fischi
это был только один пример, обновите каждый переходный процесс при любом действии, к которому он привязан
Майло
да, ты прямо здесь хотя не все мои переходные процессы связаны с действием. некоторые из них используются прямо в файлах шаблонов (когда я создаю большие списки) и содержат фактический HTML, каждый из которых длится один час. для переходных процессов, которые установлены для долгой жизни, как тот, который вы упомянули, я использую ваш метод :)
fischi
1

Не лучше ли заняться разработкой в ​​среде разработки, чтобы необходимость видеть изменения по мере их внесения не влияла на общедоступный сайт?

Используя этот подход, вы могли бы затем развернуть / продвинуть в производство и очистить переходные процессы при низком времени трафика с минимальным влиянием на производительность сайта и пользовательский опыт.

Стив
источник
да, было бы лучше, конечно - но я начал проект через несколько недель после того, как начал свой бизнес, и с тех пор многому научился. я просто создаю свою полную инфраструктуру - и я планирую разработку пользовательских тем и плагинов на моем сервере, и, как только они будут закончены, разверните обновление на сайтах с помощью функции обновления WordPress. Признаюсь, это был не лучший из выбранных мной методов.
fischi
Я думаю, что мы все been there and done thatв то или иное время.
Стив