Başından itibaren bir WordPress eklentisi yaptım: bir noob’un başarısı ve başarısızlığı günlüğü
Gerçekten bu yazıyı “Oh hayır, ne yapıyorum?!” Bir eklenti oluşturma deneyiminin daha uygun bir açıklaması olacaktır. Bu bir “Eklenti Nasıl Yapılır” yazısı olmayacak. Ben açıkça böyle bir öğretici yazan doğru kişi değilim. Tabii ki kodla oynayabilirim, ama geliştiricim değil. Ve bu nedenle, kendi eklentimi yapmaya çalışmak konusunda isteksizdim. Şimdiye kadar. Ve sana karşı dürüst olmak gerekirse? İyi gitmiyor. Sanırım yazar olarak günlük işimle kalacağım. Ancak bu, PHP aracılığıyla oldukça gelişigüzel trekking olan deneyimimden öğrenemeyeceğiniz anlamına gelmez. Ve bu, bir şeyler inşa etme çabalarımda öğrenemeyeceğiniz (veya tercih ederseniz işaret edip gülemeyeceğiniz) anlamına gelmez.
Bu yüzden daha fazla uzatmadan, bir eklenti yapmaya çalışmak için günlük günlüğümde size rehberlik ettiğimde elimi tutacak mısınız? Beni bir geliştiriciye dönüştürmedi, ama elbette bir ya da iki şey öğrendim. Zevk almak! Her gün sadece küçük bir kodlama işlemini işleyebileceğim biçim hakkında bir kelime, bu yüzden onu bölüyorum. Biraz dalga okuması üretebilir, ancak bence bu eklentinin gerçekten nasıl düşeceğini aktarmanın en iyi yolu. Bunu günlüğüme bir göz atmak olarak düşün.
Kirli eklentimi yapma hikayesinde beni takip etmek istiyorsanız kullandığım araçlar ve öğreticiler, izin vermem gereken küçük bir araç ve öğretici listesi topladım. Ekipmanınız aslında çok fazla araç gerektirmez. İhtiyacım olan şey şu: FTP İstemcisi: CyberDeck kullanıyorum, ancak her şey işlev görecek. Yüce Metin: Mac için kodunuzu düzgün ve düzgün tutan ve bir şeyler yanlış olup olmadığını söyleyen pratik kod editörü. MAMP: WordPress’in yerel sürümlerini geliştirme amacıyla yükleyebileceğiniz uzun mesafeli sunucular ayarlamanıza izin veren iyi bir uygulama. Eğitim ve Kaynaklar
WordPress eklentisinin geliştirilmesine başlamak: Ana Kılavuz: Kendi Daniel Pataki öğreticimizi test etmeye karar verdim. Bu aslında çok basit ve takip edilmesi kolay, bu benim gibi Noob eklentileri için çok iyi. Bu size Facebook Açık Grafik Etiketini entegre eden bir eklenti yapmayı öğretir.
WordPress Essence: WordPress eklentisi nasıl yapılır: Sitenize bir izleme ekranı ekleyen başka bir Daniel Pataki öğreticisi.
WordPress eklentisi nasıl yapılır: Bu yararlı öğretici, Andy Leverenz tarafından yazılmıştır ve özel yazı türleri yapma sürecinde size rehberlik eder.
WordPress’te Özel İçerik Oluşturma: Özel Gönderi Türü: Kendi Rachel McCollin tarafından yazılmış, danıştığım son öğretici. Bu, özel bir yazı türünün nasıl oluşturulacağını ve şablonların nasıl ekleneceğini özetler.
WordPress Kodu Referans: Bir şey bulmanız gerekirse, ne anlama geldiğini veya nasıl çalıştığı konusunda sahip olmak güzel.
1. Gün: Bunu yapabilirim! Naif bir coşku ve olumlu tutumla dolu, bir öğretici açtım ve çalışmaya başladım. Amaç, Facebook Açık Grafik Etiketini site başlığınıza eklemektir. Daniel öğreticisinin ilk adımında, WP-Content/ Eklentileri/ My-Facebook-etiketleri olarak adlandırılan WordPress kurulumunuzda bir klasör gerektirir. Önce sunucumda bir klasör yaparım.
Ardından, bu klasörü girmek için bir PHP dosyası oluşturmam gerekiyor.
Ve oradan, yalnızca öğreticiden bazı kodları bu dosyaya kopyalayıp eklemem gerekiyor. Açtım ve kodu hızla girdim. Şimdiye kadar oldukça sorunsuz koşuyor.
Tamam, çok iyi gitti. Gösterge panelime gidelim ve eklentinin görünüp görünmediğini görelim. Ne kadar heyecan verici olduğunu anlatmaya bile başlayamıyorum arkadaşlar.
Tanrım. Gerçekten var. Şimdi geliştirici miyim? Tamam, sanırım çok hızlıyım. Ama hala. Bazen temada sadece küçük bir değişiklik yapan biri olarak, bu oldukça ilginç. Eklentiyi Daniel’in talimatlarına göre etkinleştirdim. Hiçbir şey yapmadı, ancak bu aktif ve işleyen bir eklenti. Oradan, öğretici kancaları tartışmaya devam ediyor. Daniel’in bahsettiği her şeyi tekrarlamayacağım çünkü burada zamanımızı iyi kullanmayacak. Ancak, kanca konseptinin çok kolay olduğu ortaya çıktı. Bu terimler sizi geçmişte rahatsız etmişse, sizi korkutmalarına izin vermeyin. 2. Gün: Bu eklentinin bir şeyler yapmasını sağlayalım, değil mi? Kancanın ne olduğunu ve nasıl çalıştığını inceledikten sonra, sitenizin her sayfasındaki WP_head kancasına işlevler ekleyen Daniel Tutorial’ın bir sonraki bölümüne başlıyorum. Bu kancaya işlevler eklerken, nihayet sayfanın başında bir şey yayınlarsınız. Görünüşe göre bir aksiyon kancası ve fifter kanca var ama beni ikna eden öğretici, eklentinin yapımını tamamlamak için tüm bunları anlamaya gerek yok, böylece en az yapma geleneğinde, Facebook açık grafiğini tamamlamak için bunu anlıyorum Site başlığım için etiketleyin, bu meta etiketi aramak için wp_head’e işlevler eklemem gerekiyor. Kod, daha önce yapılan my-facebook-tags.php dosyasına kopya çalışması ve basit bir macun.
Facebook kodu açık grafik oldukça kolaydır.
Gördüğünüz gibi, WP_head kancasına my_facebook_tags işlevi eklendi. Bu kod görüntüleri, Facebook tarafından özetlenen temel etiketi kullanır ve yayın başlıkları, site adları, URL’ler, gönderme açıklamaları ve yayın türleri gibi gönderme bilgilerini çağırmak için WordPress şablon etiketlerini kullanmayı tanımlar. Daniel tarafından yapılan tek değişiklik, meta etiketinin yalnızca bir gönderi görüntülenen başlığa eklendiğinden emin olmak için IS_Single () Koşullu Etiketini kullanmaktır. Bunun sitemde ne olduğunu görmenin bir yolu olmasa da, atlayabilirim Grafik hata ayıklayıcısını açmak ve şeklin ne olduğunu görmek için.
Ben uzman değilim ama bu iyi görünmüyor. Oh hayır. Her şey çok kötü gidiyor, çok yanlış. Bu yüzden, ne olduğunu görmek için web sitemi açtım. Belki eklenti bir şeyi mahvetti …
Oh evet. Kesinlikle bir şeyi çözeceğim.
Ah hayatım. Kimse web sitelerini yüklerken beyaz bir ekranla bir şey görmek istemedi. Hiperventilasyona başlamadan önce, ne yaptığımı öğrenmek için istifa ettim. Kopyaladım ve Daniel’in kodunu eklenti dosyama tekrar koydum, kaydettim ve sitemi yeniden yükledim. Her şey normale döndü, ancak hata ayıklayıcı hala bir hata gösterdi. Bu sefer, birkaç OG: URL değerine sahip olduğum söyleniyor. Hmm. Biraz googling yapıyorum ve mevcut eklentimin yapımına aykırı bir eklentim var gibi görünüyor. Eklentimi devre dışı bırakarak iyi bir açık grafik çıkışı ortaya çıktı. Daha fazla araştırma, etkinleştirdiğim SEO eklentisinin Facebook Etiketler eklentisini rahatsız ettiğini gösteriyor, çünkü açık grafik bilgileri de içeriyor. SEO eklentisini bir süre devre dışı bıraktım ve yeni eklentimi hata ayıklayıcıda tekrar test ettim. Bu sefer herhangi bir hata kabul etmedim, ancak site başlığındaki sosyal paylaşım düğmemde bazı gariplik meydana geldi. Sosyal düğmeyi devre dışı bırakamadığım için (potansiyel müşteri oluşturma formuna eklendiği için), bu testten “oldukça iyi” den bahsetmeliydim. Bu yüzden biraz dağınıktı. Ve biraz aptal hissediyorum çünkü Facebook açık grafik verileri ekleyen eklentiler yüklediğimi unuttum. Ve tüm bunları test sunucusunda yapmayı unutun. Ama bu deneyden birkaç şey öğrendim:
Bir klasör ve eklenti dosyası nasıl oluşturulur. PHP yorumları nasıl derlenir.
Kancaya işlevler nasıl eklenir.
Koşullu etiketlere temel giriş
Yani, hepsi boşuna değil. Ama bu testten memnun değilim. Sitemde gerçekten “oldukça iyi çaba” ilan etmem gerekmeyen bir eklenti yapmak istiyorum.
3. Gün: Yeni Gün’den başlayarak, eklentiler yapmak için yeni çabalar. Burada çalışacak bir şeyler almaya kararlıydım. Tüm olası eklenti çatışmalarını ortadan kaldırmakla başlar. Bunu en başından beri yapmalıydım, ama yaşıyorsun, öğreniyorsun.
Güne MAMP açarak ve WordPress’i Localhost’ta yeniden yükleyerek başladım. Bunu daha önce yaptım, bu yüzden başından beri yapmayı düşünmediğime şaşırdım. Yardıma ihtiyacınız varsa, bu tam öğreticidir. Çoğu, eklentilerin gelişiminin doğrudan nasıl olduğunu göstermek istiyorum, ancak aklı başında hiçbir insan bunu yapmayacak, bu yüzden burada başlangıç noktasındayız. Çok unutkan olduğumu söylemiş miydim? Konuşuyorum. Bugünün eklenti çalışması, kullanım için yeni bir öğretici bulmakla başlar. Komik olan şey, Google hızla Daniel Pataki’nin başka bir öğreticisini ortaya çıkardı, bu sefer birkaç yıl önce Smashing Magazine’de yazdı. Bu, eklentilerin nasıl yapılacağına dair tüm temeller boyunca size rehberlik eder. Yaptığı eklenti, bir yayının kaç kez görüldüğünü kaydeden ve daha sonra bu bilgileri kullanıcıya gösteren bir eklentidir. Bu elbette kancalar kullanır, bu yüzden hızlı okuduktan sonra başlamaya hazırım. Popularity_tracker adlı bir klasör ve ardından site eklentisi klasörümde popülerlik_tracker.php adlı bir dosya oluşturdum. Sonra önce olağan meta verileri ekledim. Bu eklenti ilk denemem gibi başlıyor.
Oradan, yazı görüldüğünde meydana gelen işlevi ayarlayan bir kod koydum. Bu durumda, amaç her bir gönderi görüldüğünde kaydetmektir. Tekrar bir şeyi bozacağım korkusu için kodla uğraşmak istemiyorum, bu yüzden kopyala ve basit bir macun başarılı.
Yaptığım tek ayar işlevin adıydı. Sonra eylemi yapıştırıyorum. Bu, WP_HEAD yüklendiğinde yürümek için düzenlenmiştir, tıpkı yapmaya çalıştığım ilk eklenti gibi. Oke, bu yüzden şimdi eklenti, gönderi her görüldüğünde kaydetmeye hazır, bir sonraki adım bu bilgileri alarak görüntülemektir. Bir gönderi için ekran sayısı. Bir sonraki kod görüntülerinde akıllı ekran sayısını göstermesini sağlayan birçok değişken vardır. Örneğin, bir yazı için yalnızca bir ekran varsa, garip hissedecek olan “ekran” yerine “1 ekran” ifadesini kullanacaktır. Bu tür şeyler fonksiyonel düzeyde isteğe bağlıdır, ancak elbette bu iyi bir dokunuştur. Aslında, bu kadar küçük bir alanda bu kadar farklı faktörleri nasıl açıklayabileceğinizi görmek için yeterince havalı.
Bir sonraki öğretici bu eklentiye daha fazla işlev ekliyor, ancak bence burası durdurmak ve test etmek için iyi bir yer.
Başarı!
Tanrım, bu etkinleştirildi.Dahası!Ama yine de tema eklentileri uygulamam gerekiyor.Ekran sayısının hesaplama yorumları ve düzenleme bağlantıları arasında yayınlanan meta altbilgide görünmesini istediğime karar verdim.Bunu yapmak için content.php dosyasına tema.Bu ideal bir uygulama yöntemi değil, ama işe yarıyor, söylüyorum.Başarmak!Bu kodu biraz nereye yerleştireceğimi öğrenmek için dosyaları kazmam gerekiyor.Önceki çocuğun temasını değiştirmiş olmama rağmen, bu küçük bilginin çıktıda en iyi nerede görüneceğinden tam olarak emin değilim.Bazı deneme yanılma söz konusu olmalıdır. Görünüm sayısı orada dahil edilmiş gibi görünüyor, değil mi? Ama şimdi yaptığım her yazının güzel bir tezgah görünümü var. Düzenli! 4. Gün: Çocuklarım ve torunlarım için bir kez daha eklentiyi iyi çalıştırma çabaları, ancak çoğu acemi hatalarla düşüyor. Gerçekten de, ben yeni başlayanım, ama burada iyi bir iş yapmak istiyorum. Bu yüzden, bu sefer daha iyisini yapıp yapamayacağımı görmek için bugün takip edilecek bir eğitim daha arıyorum. Kullandığım öğretici zarif temalardan geliyor ve amacı, web sitesine özel bir yazı türü ekleyen bir eklenti oluşturmaktır. Kulağa faydalı geliyor. Bu yüzden, önceki günlerde sitemin eklentileri klasöründe bir PHP klasörü ve dosya oluşturarak yaptığım gibi başladım. Kitap incelemeleri için özel bir yazı türü yapmayı seçtim, bu yüzden buna özel kitap-inceleme kitap incelemesi diyorum. Öğretici müzik incelemeleri içindir, ancak bence – Yah -author yüzünden kitap kullanmaya devam edeceğim. Öğretici, yapacağımız özel gönderi türünün, hepsi kitaplar için de geçerli olan üstün görüntüler, tırnak, sıralama ve tür türleri içerdiğini söylüyor.
Uygun parametrelerle standart eklenti başlık bilgilerini kopyalayıp yapıştırıyorum. Parametrenin önünde her şeyin yolunda olduğundan emin olmak için eklentiyi etkinleştiriyorum ve daha sonra öğretici tarafından açıklanan işlevi eklemeye devam ediyorum. Şimdi, PHP’de deneyimli değilim, bu yüzden bu eklenti için kod bloğunu gördüğümde, gözlerim biraz gözyaşı. Ancak çantaya birkaç dakika nefes aldıktan sonra, sıraya göre çizgiyi görecek kadar sakindim. Yapmak istediğim kitap incelemelerinin özel gönderiminin türüne uygun bazı değişiklikler yapmam gerekiyor. Bu yüzden önce satırdan sonra satır izleyerek ve “kitap incelemesi” için “müzik incelemeleri” sözünü değiştirerek yapmam gerekiyor. Bu, öğreticiler açısından gereksiz bir adım olabilir. Kodu kolayca kopyalayıp ekleyebilir ve onunla bitirebilirim. Ama beni her kod satırını görmeye zorlayan küçük bir değişiklik yapmak istiyorum. Bir kez daha, PHP’yi bilmiyorum, bu yüzden bu hangi parametrelerin özel bir yazı türü oluşturduğunu hissetmenin iyi bir yolu. “Müzik” in her sözünü “kitaplara” değiştirmenin yanı sıra, bu tür bir yazı için gösterge paneli menüsünde görünen teklif işaretlerini de değiştirmem gerekiyor. Eğitim kodu, kitap incelemeleri için açıkça mantıksız olan Dashicons-Format-Audio olarak ayarlanmıştır. Bu yüzden WordPress geliştiricisi Dashicon Resources’a gittim ve oldukça iyi bir iş çıkaracak iyi bir küçük kitap simgesi buldum. Bunun kodu Dashicons-Book-Alt. Bookscons daha uygun görünüyor. Bununla sonuçlandıktan sonra, sitemin kontrol paneline tekrar ortaya çıkıyorum ve görüyorum. İşe yaradı! İlk deneyde! Mutlu bir dansa girerken özür dilerim. Üzgünüm, üçüncü kez mutluyum ve eklenti yapmanın yapısal sürecini kavrıyorum. Ayrıca, bu yazının geri kalanı için heyecan verici işaretimin sınırına resmen ulaştım. Afedersiniz. Bundan sonra kaçınmaya çalışacağım. Öğreticinin bir sonraki kısmı, özel yazı türüne “tür” adı verilen taksonomi ekler. Bu kitapla ilgili, bu yüzden devam ediyorum ve ekliyorum. Bu, eklentinin yeteneğini genişletmeye yardımcı olan yeni bir işlevdir. İlerlememi burada tutuyorum ve eklentiyi tekrar test ediyorum. Her şey iyi görünüyor ve şimdi kitap incelememi kategorize etmek için “tür” adlı özel bir taksonomim var.
Ve bu tür türün taksonomisidir.
Bu öğreticideki son kodlama görevi, eklenti etkinleştirildiğinde otomatik olarak “Kitap İncelemesi” adlı bir sayfa oluşturan bir işlev eklemektir. İşlevi başlatmak için işlevler ve kod ekledim. Son adım, kitap incelemesine bir örnek vermektir. Şimdi parlayanları okuyorum, bu yüzden doğru seçim gibi görünüyor. Hızlı gönderilerin örnekleri.Bazı içerik girdim, bir tür seçtim ve üstün görüntüler ekledim. Ben de rütbe ve fiyat. Çıktı iyi görünüyor ve gerçekten işe yarıyor. Ancak bu tür bir gönderiye bir şablon ekleyebilirsem mutlu olacağım, bu yüzden otomatik olarak birkaç şekilde düzenlenebilmeleri için manuel olarak bir sıralama ve fiyat bölümü yapmam gerekmiyor. Bunun için, buradaki küçük deneyimimin kapsamının ötesinde hafif bir şablon yapma görevi dışında her şeyi tamamlamak için farklı bir öğreticiye geçtim. Hey, belki bir dahaki sefere? Bir yazı yayınladım ama ön uçta görünmedim. Bunu düzeltmek için yeni eklentimi devre dışı bırakıyorum ve yeniden etkinleştiriyorum. Bunu yaparken, yazdığım incelemeleri görüntüleyen siteme “Kitap İncelemesi” sayfasını eklemek. Bunların hiçbiri verandada görünmedi, bu yüzden ana navigasyonuma bir kitap inceleme sayfası eklemem gerekiyordu. Yeniden etkinleştirmeden sonra “Kitap İncelemesi” sayfası ortaya çıktı. İyi görünüyordu, ama parlayan hakkındaki incelemem bulunamadı. Ne oldu? Başımı günlerce çizdikten sonra, nihayet permalink yapısını test sitemdeki isim sonrası olarak değiştirmem gerektiğini buldum. Bu, elbette, yeni bir site oluştururken her zaman yaptığım bir şey, ancak yerel siteleri yapılandırırken unutuyorum. Bununla birlikte, bu ayrıntının öğreticide belirtilmesi daha iyi olurdu, çünkü esas olarak yazı, gerekli düzenlemelerde değişiklik yapmadan doğru yerde görüntülenmeyecekti.
Güzel değil, ama işe yarıyor. Bununla birlikte, değiştirilmiş geçirgen bağlantılarla, kitap incelemeleri tam olarak otomatik olarak yapılmış olan yeni “Kitap İncelemesi” sayfasında olması gerektiği gibi görünür. Soğuk! Dev eklenti denemesinin dört günlük özeti, bir eklenti yaparken çok mantıklıdır. Deneyimli geliştiriciler için aptalca gelebilir, ancak benim gibi yeni başlayanlar için biraz şaşırdım. Tabii ki, önceki bir widget yaptım, HTML’de basit bir site yaptım ve bir çocuk teması kullanarak temalarda bir değişiklik yaptım. Ancak bir nedenden dolayı, yeni bir eklenti yapma görevi kaçındığım bir şey. Bence çok karmaşık olacağından korkuyorum. PHP engellerini gerçekten geçmedim. Ve neredeyse geliştirici tarafından yapılmayan bir dizi öğreticiyi tamamlarken, bu hala erken ve bu yazar bunu yapabilirse, yeni WordPress kullanıcılarının bile bunu yapabileceğini göstermelidir. Daha da önemlisi, açıkça korkulması gereken bir şey değildir ve gelecekteki bir site hazırlarken çok yararlı olabilecek bir beceridir. Bir dahaki sefere farklı yapacağım … Bir bütün olarak olmama rağmen, bu deneyin nasıl çalıştığından memnunum, farklı yapacağım bazı şeyler var. Bu, gelecekte eklentimin gelişiminin tüm maceralarının nasıl çalışması gerektiğini düşündüğüm temel genel bakış: PHP’deki sınıfı takip edin: