WordPress'te Özel İşlev Eklentilerini Kullanma Kılavuzu

Yayınlanan: 2024-03-07

On yıldan fazla bir süredir WordPress arka uç geliştiricisi olarak WordPress'i benim ve başkalarının ihtiyaçlarına göre ayarlamak için çeşitli yöntemler kullandım. En yaygın olanı WordPress özel işlev eklentileri yazmaktır. Aşağıda göreceğiniz gibi bu tek seçenek değildir ve her zaman doğru olan da değildir.

Bu yazıyı geliştiricilere ithaf ederken, proje yöneticileri de bu yöntemlerin ekiplerinin ihtiyaçlarına nasıl uyduğunu ve bunları ne zaman ve nasıl kullanacaklarını öğrenecekler.

WordPress'i özelleştirmek için kullandığım yöntemler şunlardır:

  • Kodunuzu temanın functions.php dosyasına ekleyin
  • Bir WordPress özel işlev eklentisi yazın
  • Özel kod parçacıklarını yönetmek için bir eklenti kullanın
  • Bonus: Eklentileri Kullanmanız Gerekir

Bu yöntemlerin her birine daha derinlemesine bir göz atalım.

Function.php dosyasına kod ekleyin

WordPress'in ön uç ve arka uçta çoğunlukla PHP kullandığı "eski" günlerde, sitenizde bazı değişiklikler yapmanın en hızlı yolu, kodu temanın Function.php dosyasına eklemekti.

Bunu yine de yapabilirsiniz ve cesaretiniz varsa bunun için WordPress kontrol panelindeki Tema Dosyası Düzenleyicisini kullanın.

WordPress kontrol panelindeki Tema Dosyası Düzenleyicisi aracılığıyla function.php dosyasına özel kod eklendi.
Tema Dosyası Düzenleyicisi aracılığıyla temanın functions.php dosyasındaki özel kod.

Zamanla bu, WordPress'i özelleştirmenin tercih ettiğim yönteminden en az sevdiğim yönteme dönüştü.

Bunun temel nedeni, functions.php bir temaya eklenmesidir. Bu özel bir tema değilse ve birisi onu güncellerse ayarlamalarım kaybolur.

Çözüm, ana temayla ilgili değişikliklerinizi içeren bir alt tema oluşturmaktır.

functions.php dosyasına artık çok fazla özel kod eklemememin ana nedeni, gerçekte bu kodun çoğunun eklenti bölgesi olması ve yalnızca temaya değil, sitenin geneline işlevsellik katmasıdır.

functions.php dosyasına özel kod yazdığım hala iki durum var:

  1. Kod, özel veya alt temayla ilgilidir.
  2. functions.php erişim genellikle kolay olduğundan, bunları başka bir yere taşımadan önce hızlı değişiklikleri test ediyorum.

Ayrıca, tek bir dosya aşırı karmaşık hale gelebileceğinden, functions.php pek çok değişikliği barındıracak yer olmadığını unutmayın. Özellikle değişikliklerimde birden fazla PHP dosyasına ve diğer dosya türlerine ihtiyaç duyduğumda, bir WordPress özel işlev eklentisi yazmayı tercih ediyorum.

Özel İşlev Eklentileri Yazma

Daha önce de belirttiğim gibi siteme eklediğim kodun çoğu aslında temadan bağımsız işlevler oluşturuyor veya genişletiyor.

Bir siteye daha fazla özelleştirme ekleyeceğimi öğrendikten sonra özel bir işlev eklentisi başlatıyorum. Genellikle sitenin adını taşır, tıpkı WP Mayor için kullandığım "WP Mayor Özel İşlevler" eklentisi gibi.

İsim vermek çok önemli! Birincisi, diğer yöneticilerin bu eklentinin siteyle ilgili olduğunu ve muhtemelen yalnızca siteyle ilgili değişiklikleri barındırdığını görmesine olanak tanır.

İkincisi, eklenti klasörünü ve dosya adını benzersiz tutmak, WordPress sitenizin, wordpress.org eklenti deposunda aynı bilgiye sahip bir eklentiyle yanlışlıkla üzerine yazmasını önleyecektir.

WordPress özel işlev eklentisi oluşturmak kolaydır. İhtiyacınız olan tek şey wp-content/plugins içindeki bir PHP dosyasıdır. Ancak, kodunuzu yapılandırmak için genellikle birden fazla dosyaya ihtiyaç duyduğunuzdan ve JavaScript ve CSS kodu için dosyalar eklemek isteyebileceğinizden, öncelikle yeni bir klasör oluşturmalısınız.

Örneğimizi takip ederek, diyelim ki artık wp-content/plugins/wp-mayor-custom-functions/wp-mayor-custom-functions.php eklenti klasörüne ve ana dosyaya sahibiz.

WordPress'e eklentimizin neyle ilgili olduğunu anlatmak için dosyaya bir başlık ekleyelim. Teknik olarak çalışması için “Eklenti Adı” yeterli olsa da, daha gelişmiş bir örneğe bakalım:

 /** * Plugin Name: WP Mayor Custom Function * Plugin URI: https://wpmayor.com * Description: All the cool features we custom-built for us. * Version: 1.0.0 * Requires at least: 6.2 * Requires PHP: 8.1 * Author: Thomas Maier */

Bu zaten WordPress kontrol panelimizde “Eklentiler” altında görünmelidir.

Eklentiler menüsünde etkinleştirilen bir WordPress özel işlev eklentisi.
Eklentiler bölümündeki özel işlev eklentimiz.

Artık çılgına dönüp gerçek PHP kodunu dosyamıza ekleyebiliriz.

İpucu: Bir siteye FTP erişimim olmadığında veya tembel olduğumda, daha sonra WordPress kontrol panelindeki Eklenti Dosya Düzenleyicisi aracılığıyla kodla doldurabileceğim bir şeyi hızlı bir şekilde başlatmak için Pluginception eklentisini kullanıyorum.

Artık belirli bir sitenin tüm kodunu tek bir özel işlev eklentisine mi yerleştirmeniz gerekiyor?

Duruma göre değişir. Özel kodun birden fazla projede kullanıldığını bildiğimde onu farklı bir eklentiye ayırıyorum. Aynı zamanda belirli bir siteye özel kodları tek bir eklentide topluyorum. Ne kadar az eklenti olursa, o kadar az kod deposuna ihtiyacım olur.

Şu ana kadar harika görünüyor mu? Geçtiğimiz yıllarda daha büyük bir eklenti şirketini yönetirken ve sitede yüzden fazla düzenleme yaparken, bu özel eklentilerin hala geliştirici odaklı olduğunu fark ettim. O halde bir sonraki bölümde başka bir yaklaşıma bakalım.

Kod parçacıkları için özel bir işlev eklentisi kullanma

Büyük eklenti işlerinde geçirdiğim zamanın çoğunda eklenti mağazamızın teknik yönünden sorumluydum.

Temaya özgü olmayan herhangi bir kodu tek bir özel işlev eklentisine koydum. Boş kartların fiyatlandırma sayfasına yönlendirilmesi, ek satış teklifleri veya Kara Cuma teklifleri gibi bireysel eklentilerde ve özelleştirmelerde yapılan tüm ayarlamalar belgelendi ve okunabilir adlarla çeşitli dosyalara yayıldı.

Koda erişimi olan herkes için "belgelenmiş" ve "okunabilir".

Her ne kadar ayarlamalar yapmak veya bunlarla ilgili soruları yanıtlamak için her zaman yanımda olsam da, bunun çoğu özel işlevi yerine getirmenin etkili ve sürdürülebilir bir yolu olmadığını hissettim.

Mağazanın ve web sitesinin yönetimine giderek daha fazla kişinin dahil olmasıyla, bilgi tabanımızdaki özel bir sayfayı güncel tutmak zorunda kalmadan onlara ayarlamalar hakkında bilgi edinme şansı vermek istedim.

Çözüm, WordPress kontrol panelindeki kod parçacıklarının tamamını veya çoğunu yöneten bir WordPress özel işlev eklentisi kurmaktı.

Benim kişisel favorim ücretsiz Kod Parçacıkları eklentisidir, ancak etrafta başkaları da var.

Kod Parçacıkları ile kontrol panelinde tüm parçacıkların bulunduğu özel bir menü öğesi bulunur.

Artık yönetici erişimi olan herkes ayarlamaları görebilir. Her parçacık için açıklayıcı adlar kullanıyorum, onu derinlemesine açıklamak için notlar alanını kullanıyorum ve grup değişikliklerine etiketler atadım.

Kod Parçacıkları eklentisindeki kod parçacıklarının listesi.
Özel kod parçacıklarının listesi.

Etiketlerim genellikle ayarlanan eklentinin veya temanın adı ve "WooCommerce" ve "Checkout" gibi sayfanın bununla ilgili bölümüdür.

Kod Parçacıkları eklenti sayfasındaki özel kod parçacıkları örneği.
Bu örnekte, gönderilerin altındaki son güncellemenin tarihini görüntüleyen özel bir kod gösterilmektedir.

İyi isimler ve iyi bir yapı seçerseniz, herkesin ayarlamaları bulup anlayabilmesi gerekir. Ben dahil. Bu yöntemi çok fazla rahatlık sağladığı için kişisel sitelerimde bile kullanıyorum.

Özel bir işlev eklentisi kullanmak, yalnızca arada bir çalıştırılması gereken bazı temizleme kodları veya bir promosyonun etkinleştirilmesi gibi bazı ön uçlara yönelik eylemler gibi, yalnızca geçici olarak ihtiyaç duyduğunuz kod parçacıkları için özellikle yararlıdır.

Bu güvenli mi?

Varsayılan olarak WordPress, “yönetici” rolüne sahip herkesin arka uçtaki eklenti ve tema dosyalarını düzenlemesine izin verir. Özel bir kod eklentisi kullanmak bundan farklı değildir. Bu nedenle, savunmacı olma ve herkese yalnızca ihtiyaç duyulan rolü verme şeklindeki eski kural hala geçerlidir.

Geliştiriciler, bir eklenti aracılığıyla kodu yönetirken sayfa isteğindeki bazı çok erken kancaların kullanılamadığını bilmek isteyebilir, çünkü önce eklentinin kendisinin yüklenmesi gerekir. Özel kodunuzun başka bir eklentiden önce yüklenmesine ihtiyacınız varsa aşağıdaki Kullanılması Gereken Eklentiler seçeneğine göz atın.

Kullanılması Gereken eklentilerdeki özel WordPress işlevleri

"Kullanılması Gereken" eklentiler, eklentiler arasında özel bir türdür.

Diğer "normal" eklentilerden önce çalıştırıldıkları için, bunları belirli bir sayfa için belirli eklentileri açmak veya kapatmak için kullanıyorum. Sahte API'leri veya admin-ajax.php çağrılarını hızlandırmak için bu kodu kullanabilirsiniz.

Must Use eklentilerinin bir başka özelliği de varsayılan olarak etkin olmaları ve hiç kimsenin bunları WordPress kontrol panelinden devre dışı bırakamaması veya değiştirememesidir. Bu onları yönetici kullanıcıların bile erişemeyeceği temel kodlar için ideal kılar.

Mu-eklentisi oluşturma

Kullanılması Gereken eklentiler wp-content/mu-plugins klasöründe barındırılır. Bu klasör yeni bir WordPress kurulumunda mevcut değil. Ancak bazı eklentiler veya barındırma şirketleri buraya dinamik olarak içerik ekleyebilir.

mu-plugin klasörüne yeni bir eklenti eklemek için yukarıda size özel eklentimiz için gösterdiğim eklenti dosya başlığı ile bilgisayarınızda bir PHP dosyası oluşturmanız gerekiyor. Bu sefer, Kullanılması Gereken eklentiler otomatik olarak güncellenmediğinden benzersiz bir ad seçmeniz önemli değil.

Yeni özel işlev eklentinizden memnun kaldığınızda, onu FTP yoluyla manuel olarak wp-content/mu-plugins klasörüne yükleyin. Eğer yoksa mu-plugins klasörünü oluşturun.

Kullanılması Gereken eklentileri WordPress yönetici panelinden değiştiremeseniz de, bunları Eklentiler > Kullanılması Gereken altında listelenmiş olarak görebilirsiniz.

WordPress admin'deki Eklentiler altında listelenen, Kullanılması Gereken bir WordPress özel işlev eklentisi.
Kullanılması Gereken eklentilerin, Eklentiler bölümünde kendi özel sekmeleri vardır.

İdeal olarak, Kullanılması Gereken eklentiler tek dosyalı eklentilerdir. WordPress bunları alt klasörlerde bulamaz, ancak ana PHP dosyasındaki ek dosyalara başvurabilirsiniz. Ancak karmaşık bir Kullanılması Gereken eklenti oluşturursanız, ana kodu normal bir eklentiye taşımayı düşünün ve MU eklentisini yalnızca diğer tüm eklentilerden önce çalıştırmak için gerekenleri yüklemek için kullanın.

Çözüm

Bir temanın functions.php dosyasına geleneksel kod eklenmesinden, bağımsız eklentilere ve WordPress özel işlev eklentilerine, Must Use (mu-eklentileri) kullanımına kadar, WordPress'e özel kod eklemeye yönelik çeşitli yöntemleri araştırdık. Her yöntem, farklı ihtiyaçlara ve senaryolara göre uyarlanmış, kendine özgü avantajlar ve potansiyel dezavantajlar sunar.

Gördüğünüz gibi bu benim için bir geliştirici ve proje yöneticisi olarak bir yolculuktu. Değişimin türüne ve kimin erişebileceğine bağlı olarak bugünlerde hala tüm yöntemleri kullanıyorum.

Umarım bu makale siz genç ve kıdemli geliştirici arkadaşlarımın, WordPress'te özel işlev eklentisi olarak kod eklemenin doğru yolu hakkında kendi kararlarınızı vermenize yardımcı olur. Bir şeyi kaçırırsam yorumlarda bana bildirin.