Gelişmiş WordPress Geliştirme: Geçici ile Çalışma
Geçici, genellikle daha az kullanılan çok pratik bir WordPress önbellek türüdür. Ama tam olarak ne? Basitçe söylemek gerekirse, geçici, son kullanma tarihine göre kaydedebileceğiniz küçük bir veridir. Bu çok fazla görünmeyebilir, ancak geçici WordPress’te kendinizi temizleyen daha verimli bir sistem oluşturmanıza olanak tanır. Bu, gelişmiş geliştiriciler için WordPress’e odaklanan altı bölümümüzdeki üçüncü gönderi. Bu seri, temanın ayrıntılı olarak geliştirilmesi, temaları hazır hale getirme, yapı eklentileri, türleri ve özel yayınların, sorguların ve döngülerin taksonomisi de dahil olmak üzere birkaç ilginç kodlama konusunu tanıtan orta kullanıcılar için popüler WordPress’imizin geliştirilmesinden geliyor. , özel alanlar ve meta veriler ve yerelleştirme.
Geçen haftanın gönderisinde, nesne yönelimli eklentilerin yazılmasını araştırdık. Bu yazıda, bir an için duracağız ve WordPress’in devam eden kısımlarını görmeye başlayacağız. OOP’yi uygun kod örneğinde kullanacağım, bu yüzden kayıp hissediyorsanız, bu serinin ilk iki bölümüne bakmalısınız. Sıkışalım. Not: PHP hakkında bilgi sahibi olmanız önemlidir, çünkü bu, geliştiricilere yönelik sürekli konuları içeren bu serinin WordPress’in temel dilidir. Bu dizi boyunca kod görüntülerine başvuracağım.
Neden Geçici Kullanıyor? Ana sayfa için en son PIN’inizi görüntüleyen bir Pinterest modülü yaptığınızı varsayalım. Düzenli uygulama, her sayfa yüklemesinde PIN’inizi alabilir. Bu birkaç nedenden dolayı verimsizdir:
Bu, sunucunuza gereksiz baskı oluşturur
Büyütülmüş, bu sorun barındırma maliyetlerinizi artırabilir ve/veya sitenizi yavaşlatabilir ve bant genişliğinin gereksiz kullanımına neden olabilir
Bu, tarife sınırına çarpmanıza neden olabilir – sınır yeniden düzenlenene kadar piminiz görüntülenmeyecektir.
Yangın kullanırsanız diğer sunuculara haksız baskı oluşturabilirsiniz
Geçici, bu sorunun üstesinden gelmenin bir yoludur. Temel olarak önbellek mekanizmalarıdır. Örneğin, Pinterest Pin’inizi alıp görüntülemek yerine, geçici bir “aracı” olarak koyarsınız. Alınan pimler geçici olarak iki saat geçerli ile saklanabilir. İki saat boyunca pim yerel olarak yüklenecektir. İki saat geçtikten sonra, geçici olarak silinir ve pim geri alınır.
Geçici için bir başka harika kullanım, ilgili yayınlar veya karmaşık başlık menüleri gibi karmaşık sorguları depolamaktır. Sorguya göre üretilen karmaşık sorguların veya HTML’nin sonuçlarını alıp geçici olarak saklayabilirsiniz. Peki geçici çalışma nasıl? Etkili bir sistem oluşturabilmek için, geçici olarak bazı önemli şeyler bilmeniz gerekir: nerede bulunabilirler ve sona erme süresinin nasıl çalışması. Geçici Depolama Geçici Geçici, genellikle WordPress veritabanınızda saklanır, ancak her zaman değil. Memcached eklentileri geçici olarak belleğe zorlayacak, bu da daha hızlı hale getirir. Bu nedenle, her zaman WordPress tarafından sağlanan GET/SET/SELLE işlevine güvenmelisiniz.
Geçici bitiş ne zaman? Geçici olarak ayarladığınızda, maksimum son kullanma süresi verirsiniz. Geçici, son kullanma süresinden önce silinebilir, ancak daha sonra asla mevcut olmayacaktır. Etki, verileri yeniden oluşturmak için her zaman bir yedeklemeniz olması gerektiğidir. Geçici Filmlerin Bir Listesi Oluşturma Bu ders için projemiz, geçici kullanan filmlerin bir listesini yapmaktır. Netflix API’sına ücretsiz bir yol sağlayan Netflix Ruleti adında temiz bir küçük ateş buldum. Onun yardımıyla popüler yönetmen Martin Scorsese’den bir film listesi yapacağız. İlk şey birincisi, hızlı bir eklenti yapmanız gerekiyor. “En sevdiğim yönetmen” adlı benim. Bu aşamada, hiçbir şey yapmayan, ancak WordPress’te etkinleştirilebilen bir eklenti yapabilmelisiniz. Yardıma ihtiyacınız varsa, WordPress eklentilerinin geliştirilmesine başlayan makalemize bakın: Ana Kılavuz. URL, Martin Scorssee filmlerinin bir listesini görüntüler, http://netflixroulette.net/api/api.php?director=martin%20scorsese. İade edilen veriler, gövdedeki JSON dizesidir. PHP dizisine dönüştürmek ve aşağıdaki widget’ı oluşturmak için tekrarlamak için json_decode () kullanacağız:
Filmlerin eklentisi listesi
İki dosya içeren geçici eklentiler olmadan oluşturun. Ana File-My-Favorite-Director.php, tüm işlevlerimizi başlatan temel sınıflar içerir:
Widget’ı başlatan yöntemi etkinleştiren yapıcı yöntemine kancalar ekledim. Widget’lar, widget sınıfının adını parametresi olarak alan Register_widget () işlevi kullanılarak yapılabilir.
Sınıf kullanılabilir olmalıdır, böylece _my_favorite_director_widget.php – üstte bir dosya ekledim. Widget’ı yapan kod aşağıdaki gibidir: Çekirdek ACD7CF50F12EE718879C32357DBD2325
Yapıcı yöntemi, widget’ın adı ve açıklaması gibi temel ayrıntıları işler. Form () yöntemi, widget ayrıntılarını saklamak için gereken öğeleri yayınladı. Bizim durumumuzda bu sadece başlık. Widget () yöntemi, kullanıcıya bakan bir widget tarafı oluşturmak için kullanılır. HTTP API’sını kullanarak API’ya bir istek gönderdik ve ihtiyacımız olan verileri açıkladık. Ardından, verileri tekrarlıyoruz, bir film listesi yapıyoruz.
Bu iyi çalışmalıdır, ancak kodumuz yukarıda açıklanan tüm sorunlarla yüklenmiştir. Netflix Ruleti, herkese açık ve özgürce erişilebilen bir API’dır, bu nedenle gönderdiğimiz soruları en aza indirmek için elimizden gelen her şeyi yapmalıyız! Geçici Mantık Ekleme Geçici ekleme her zaman benzerdir:
Bir süredir ihtiyacımız olan verileri alın
Boş olup olmadığını kontrol edin
Boşsa, normal kaynaklardan veri alın ve yeni verilerle geçici olarak güncelleyin
Geçici değer kullanın
İlk adım, verileri yangından gerçekten alan kodu widget sınıfımızdaki yeni yönteme ayırmaktır. Get_movies () deyin.
66FB7AF4A50791F9AEDCFD0E8FAC4EF4’ün özünü içerir
Ardından, geçici ile birlikte yeni bir yöntem kullanmak için widget () yönteminin başlangıcını değiştirelim.
Çekirdek yükleme D3456CB838B58946D4C0C0E3336B74E
Get_transient () işlevini kullanarak “Favorim-Direktör” adlı geçici bir değeri alırız. Değer boşsa (geçici hiç var olmadığı veya süresi dolmadığı için), API’dan ihtiyacımız olan verileri alıp SET_TRANSIENT () işlevini kullanarak geçici olanı güncellemek için kullanırız. Bu işlev, geçici adı ilk parametre, ikinci parametre olarak depolanan verileri ve üçüncü parametre olarak son kullanma süresini alır. Bir hafta içinde sona ereceğini göstermek için WordPress sabitini kullandım. Diğer her şey aynı. Her yükleme sayfasında yangını sormak yerine, haftada bir kez indirdik. Bu oldukça güvenli bir bahis, yönetmen her gün yeni bir film yapmıyor! Eklentilerimizi birçok yönetmenle genişletmek şu anda yönetmen eklentiye kodlanmıştır. Değiştirelim ve kullanıcı girişini desteklemeye başlayalım! Başlamak için, metnin metnini kullanıcının yönetmenin adını girebileceği widget formuna eklemeliyiz. Form yönteminin tam kodu aşağıdaki gibidir:
Yükleme Çekirdeği 9DAF08C0C87920981307F39846A1D6E9
Gitmemiz gereken bir sonraki yer get_movies () yöntemidir. Widget () yönteminde şöyle diyeceğiz:
Yükleme Çekirdeği C73A22E1ABC2668477556F6CCBB02553
Daha sonra argümanı desteklemek için işlevi yeniden yazabiliriz. Tek yapmamız gereken URL’yi kodlamak ve temel URL’ye eklemek.
9FD93FDCA35E2739AB44D013666C8F2E’nin çekirdeğini içerir
Formu “Quentin Tarantino” ile doldurursanız, bilgilerin depolandığını göreceksiniz, ancak yine de Martin Scorssene filmini listede görüyorsunuz. Bunun nedeni, yalnızca bir hafta içinde güncellenecek olan geçici “en sevdiğim yönetmen” i kullanmamızdır. Widget yönteminin () (veya bir hafta bekleyin) üstüne delete_transient (‘my-favorite-yönetmen’) ekleyin ve sayfayı yeniden yükleyin. Yeni filmlerin bir listesini göreceksiniz. Delete_transient () çağrısını silin ve bunun neden bu kadar delete_transient () olduğunu bulmaya devam edelim! Bu bir bakışta bakıldığında iyi görünüyor, ancak farklı bir yönetmenle ikinci bir widget eklemeyi deneyin. Aynı listeye sahip farklı bir başlık içeren bir widget alacaksınız. İki farklı veri koleksiyonu için bir geçici kullanıyoruz, bu da iki widget’ın aynı listeyi görüntüleyeceği anlamına geliyor. Çözüm, değişkenin adını geçici olarak kullanmaktır. Widget () yönteminin başlangıcını değiştirelim. Mainstick 255A60ED27D75E56151B8B8EFEC70EA
“En sevdiğim yönetmen” i kullanmak yerine “MFD- [Sosyalleştirilmiş Direktör adı]” kullanacağız. Örneğin, Bay Tarantino’dan bir film çekerken, geçici isim “MFD-Qentin-Tartarino” dır. Her yönetmen ayrı bir geçici olacaktır. İlk sayfayı yüklerken, bu iki yangın çağrısı üretecektir, ancak çağrı geçici olarak bir hafta boyunca önbellek olacak-o zaman iki yangın çağrısı yapılacaktır.
Ayrı film listesi
Geçici işlemleri kaldırma Eylemi kullanarak bazı durumlarda, geçici olarak kullanıcı eylemi yoluyla güncellenebilecek bir şey eklemek istersiniz. Örneğin, tam HTML’yi en iyi gezinme menüsünden geçici olarak saklayabilirsiniz. Üst HTML menüsü asla kendi başına değişmez, ancak kullanıcılar menü öğelerini ekleyebilir/silebilir. Bu durumda, zaman sınırını çok yüksek bir şeye göre ayarlayabilir ve gerektiğinde geçişleri çıkarmak için diğer kancalara güvenebilirsiniz. Çekirdek 0F23A9F4612D62287FE2D9F1DABFB1
Gördüğünüz gibi, hiç kimse sizi geçici olarak en çok HTML depolamanızı engellemedi. Her zaman kaydettiğiniz verileri değiştirebilecek tüm kancaları haritalamaya dikkat edin, eğer değilse, web sitesi sahibinin niyeti ile senkronize olmayabilir. API geçişlerini sarma, kullanımı kolay ve güçlü bir WordPress özelliğidir. Özellikle bunun dışında başka bir güçlü önbellekleme mekanizması kullanacaksanız, kullanırken dikkatli olmayı önereceğim. Genel olarak, pancar ve veri indirimleri için geçici kullanmak iyi bir fikirdir-özellikle API çağrılarının sonuçları ancak sitelerinizin çoğunu geçici olarak kaydedin. Tabii ki istisnalar var, ancak pratik bir kural olarak, yalnızca performansta bir artış göreceğinizden emin olduğunuzda geçici kullanın.
Bu öğreticinin yararlı olduğunu düşünüyor musunuz? Neden WordPress gelişimini öğrenmek istiyorsunuz? Daha fazla bilmek istiyorsun? Bize aşağıdaki yorumlarda anlatın.
Etiket: