Nigdy wcześniej nie korzystałem z Transient API i zastanawiałem się, czy ktoś ma wskazówki, kiedy go używać. Artykuł w Kodeksie sugeruje, że jako twórca motywów chciałbym ustawić każdy nowy WP_Query()
jako przejściowy; Zakładam, że to samo można powiedzieć o bezpośrednich zapytaniach $ wpdb i query_posts()
. Czy to przesada? I / lub Czy są inne miejsca, w których powinienem domyślnie go używać?
Często używam wtyczek buforujących na mojej stronie (zwykle W3 Total Cache) i wygląda na to, że użycie Transientów może podnieść skuteczność wtyczki, ale nie chcę zwariować, pakując wszystko w transjenty, jeśli nie jest to najlepsza praktyka.
Odpowiedzi:
Przejściowe są świetne, gdy wykonujesz złożone zapytania w swoich motywach i wtyczkach. Zwykle używam transjentów do takich rzeczy jak menu i pokazywania innych rzeczy takich jak Tweety z Twittera na przykład na pasku bocznym. Nie użyłbym ich do absolutnie wszystkiego, więc tylko tymczasowe fragmenty danych, które można buforować.
Pamiętaj, że jeśli użyjesz czegoś takiego jak Memcached ze stanami przejściowymi, zauważysz ogromny wzrost wydajności. Reguła dotycząca stanów nieustalonych polega na tym, aby nie używać ich do danych, które nie powinny wygasać, ponieważ tak naprawdę są to tylko dane tymczasowe i należy pamiętać, że dane przejściowe nie zawsze są przechowywane w bazie danych.
Niektóre zastosowania dla stanów nieustalonych :
Ten artykuł jest bardzo pouczający i zawiera szybkie testy porównawcze pokazujące, w jaki sposób transjenty mogą przyspieszyć twoją witrynę, a nawet ma kilka przykładów. Ten drugi artykuł zawiera również kilka świetnych przykładów użycia stanów nieustalonych, które mogą pomóc ci zrozumieć, do czego ich używać.
źródło
Istnieje kilka mechanizmów buforowania w WordPress, a ich mechanizmy różnią się w zależności od wyboru pamięci podręcznej obiektów (macierzystej lub nie):
Krótko mówiąc, oznacza to, że przejściowy jest zawsze trwały (przetrwa między ładowaniami stron w przeciwieństwie do natywnie pamięci podręcznej), ale będzie korzystał z niestandardowego magazynu, jeśli jest dostępny (w przeciwieństwie do Opcji).
To sprawia, że transjenty są najbardziej uniwersalnym wyborem do buforowania.
Jednak z elastycznością wiąże się niedostateczna złożoność i jest z nimi całkiem sporo niuansów (takich jak ograniczenie długości nazwy, różne zachowanie z wygaśnięciem i bez niego, brak wyrzucania elementów bezużytecznych), które sprawiają, że są bardziej złożone niż się wydaje.
Ogólny:
źródło
Myślę, że kod ze Sterlinga można ulepszyć, nie wywołując dwukrotnie funkcji get_transient. Zamiast tego zapisz pierwszy wynik w zmiennej tymczasowej. Ponieważ ideą Transient API jest szybkość ;-)
źródło
Krótka odpowiedź: powinieneś go używać, kiedy / gdzie możesz.
Długa odpowiedź:
Transjentowy interfejs API służy do buforowania. Więc chcesz z niego korzystać jak najwięcej. Możesz napisać funkcję, która zrobi to za Ciebie.
To nie jest przesada, a jeśli zrobione poprawnie, w końcu będzie dość eleganckie:
źródło
Transjenty API są bardzo przydatne, gdy pobierasz dane ze źródeł zewnętrznych, takich jak Facebook, Twitter.
Aby lepiej zrozumieć, czym jest Transients API i jaka jest różnica z funkcją Cache WordPress, polecam obejrzeć rozmowy Otto i Nanica z WordCamp San Francisco 2011
źródło