Teknik okuyucularımızdan biri yakın zamanda bize, yeni kodu bir WordPress sitesine entegre etmeden önce bir PHP fonksiyonunun varlığını doğrulamanın yollarını sordu. Bu, sitenizin sorunsuz çalışmasını sağlamak ve hatalardan kaçınmak için önemlidir.
WordPress'in güçlü yanlarından biri esnekliğidir ve WPBeginner ekibi sitemizin işlevselliğini artırmak için düzenli olarak özel işlevler ekler. Özel PHP kodunun, artık var olmayan veya henüz tanımlanmamış bir işlevi çağırması durumunda başarısız olabileceğini anlıyoruz.
Bu makalede, WordPress temanıza eklemeden önce bir fonksiyonun var olup olmadığını kolayca nasıl kontrol edeceğinizi göstereceğiz, böylece kodunuzdaki olası hatalardan kaçınabileceksiniz.

Özel Kodunuza 'Fonksiyon Varsa' Eklemenin Nedenleri Nelerdir?
WordPress, ağırlıklı olarak PHP programlama dilinde yazılmıştır. PHP, WordPress hosting sağlayıcınızın sunucularında çalışan sunucu taraflı bir programlama dilidir.
PHP kodunun ziyaretçilerinizin tarayıcılarında sayfa yüklenmeden önce çalışmayı bitirmesi gerektiğinden, bunun bazı sınırlamaları vardır. Bu sınırlamalardan biri, bir şeyler ters giderse, tüm sayfanın yüklenmesini engelleyebilmesidir.
WordPress'te, eksik bir fonksiyon kodun geri kalanının çalışmasını engellerse, durur ve kritik bir hata veya ölümcül hata mesajı görüntüler.

Bir fonksiyonun aniden çalışmayı durdurmasına veya kaybolmasına ne neden olabilir?
Düşündüğünüzden daha yaygın bir WordPress hatasıdır.
Örneğin, WordPress eklentilerinizden birinin temanızın üst veya alt kısmına eklediğiniz bir fonksiyonla geldiğini varsayalım. Eklentiyi devre dışı bırakmak fonksiyonun kaybolmasına neden olur ve WordPress web sitenizde kritik hataya neden olur.
Bununla birlikte, WordPress tema dosyalarınızda bir fonksiyonu çalıştırmadan önce mevcut olup olmadığını kolayca nasıl kontrol edeceğinize bir göz atalım.
WordPress'te Bir Fonksiyonun Var Olup Olmadığını Kontrol Etme
Neyse ki, PHP programlama dili, çalıştırmadan önce bir fonksiyonun varlığını kolayca kontrol etmek için yerleşik bir yönteme sahiptir.
Zaman dilimi bilgileriyle geçerli saati görüntüleyen bir WordPress fonksiyonunuz olduğunu varsayalım. Deneyebileceğiniz örnek bir kod parçacığı aşağıdadır.
Doğrudan temanızın functions.php dosyasına ekleyebilirsiniz, ancak bu eğitimde, WPCode kod parçacığı eklentisini kullanacağız çünkü WordPress'e özel kod eklemenin en güvenli ve en kolay yoludur.
Öncelikle, WPCode Ücretsiz Eklentisini yüklemeniz ve etkinleştirmeniz gerekir. Bunu nasıl yapacağınız konusunda yardıma ihtiyacınız varsa, lütfen WordPress eklentisi nasıl kurulur hakkındaki adım adım başlangıç kılavuzumuza bakın.
Etkinleştirdikten sonra, WordPress kontrol panelinizde Kod Parçacıkları » + Kod Parçacığı Ekle bölümüne gitmeniz gerekir. Oradayken, 'Özel Kodunuzu Ekleyin (Yeni Kod Parçacığı)' seçeneğinin üzerine gelin ve ardından görünen 'Kod Parçacığını Kullan' düğmesine tıklayın.

Bu, özel kod parçanızı ekleyebileceğiniz yeni bir sayfa açacaktır. 'Saat Dilimi ile Mevcut Saati Göster' gibi bir başlık yazın ve ardından aşağıdaki kod parçasını Kod Önizleme bölmesine yapıştırın.
//display current time with timezone
function wpb_show_timezone() {
$better_time = current_time('F j, Y g:i a e');
echo "<p>The current time is " . $better_time ."</p>";
}

Bundan sonra, kodun doğru çalıştığından emin olmak için Kod Türü açılır menüsünden 'PHP Snippet' seçmeniz gerekir.
Son olarak, Etkinleştir geçişini Açık konuma getirmeniz ve yeni kod parçacığınızı depolamak için 'Kod Parçacığını Kaydet' düğmesine tıklamanız gerekir.

Bu fonksiyonu çağırmak için, mevcut zamanı görüntülemek istediğiniz WordPress temanızda herhangi bir yere aşağıdaki kodu eklemeniz gerekecektir.
<?php wpb_show_timezone(); ?>
Test web sitemizde böyle görünüyordu.

Peki, bu fonksiyonu çalıştırmaktan sorumlu kod kaybolursa ne olur?
Fonksiyona yapılan çağrı web sitenizi şu şekilde bozacaktır.

Bu kodun yalnızca fonksiyon mevcut olduğunda çalıştığından emin olmak için bir kontrol ekleyelim.
Yine, kodu doğrudan temanızın functions.php dosyasına eklemeniz veya WPCode gibi bir kod parçacığı eklentisi kullanmanız gerekecektir (önerilir):
<?php
if( function_exists('wpb_show_timezone')) {
wpb_show_timezone();
} else {
// do nothing
}
?>
Bu kodda function_exists() fonksiyonunu kullanıyoruz. Bu fonksiyon bir fonksiyonun var olup olmadığını kontrol eder ve Doğru veya Yanlış döndürür.
Ardından, fonksiyonun kullanılabilirliğine bağlı olarak uygun eylemi gerçekleştirmek için bir if-else koşulu ekledik.
Artık fonksiyon kullanılamadığında, kod onu basitçe atlayacak ve WordPress web sitenizin geri kalanını normal şekilde yükleyebilecektir.

Umarım bu makale, WordPress'te bir fonksiyonun var olup olmadığını nasıl kontrol edeceğinizi öğrenmenize yardımcı olmuştur. Ayrıca, WordPress sitenizde kodu kolayca nasıl görüntüleyeceğinize dair rehberimize veya WordPress dosyalarını düzenlemek için Mac ve Windows için en iyi kod düzenleyicilerine ilişkin uzman seçimimize de göz atmak isteyebilirsiniz.
Bu makaleyi beğendiyseniz, lütfen WordPress video eğitimleri için YouTube Kanalımıza abone olun. Bizi ayrıca Twitter ve Facebook'ta da bulabilirsiniz.

kzain
Başımı beladan kurtardı! Bir fonksiyon olmadığında temamın çökmesi nedeniyle kod ekleyip durdum. Uygulaması süper kolay ve kodumu temiz tutuyor.
Açık açıklama için teşekkürler
Jiří Vaněk
PHP'nin var olmayan bir PHP fonksiyonu hakkında bana hata vermesi durumunda, böyle bir fonksiyonun etkinleştirilebileceğini mi, yoksa sunucu yöneticisi tarafından mı yapılması gerektiğini sormak istiyorum? Ve fonksiyonun PHP sürümüne bağlı olması mümkün mü? Yani, belirli bir fonksiyonun bir PHP sürümünde mevcut olup diğerinde olmaması gibi?
WPBeginner Desteği
Bu durumda fonksiyon mevcut değildir, bu nedenle hataya neyin neden olduğunu bulmaya yardımcı olmak için belirli fonksiyona bakmanız gerekir. Ardından, hataya neyin neden olduğunu destek ekibiyle kontrol edebilir veya hataya neden olan şeyi kaldırabilirsiniz.
Yönetici
Rakib
gerçekten yardımcı
Joana Pereira
İyi fikir Kovshenin. Tam olarak ne demek istediğini biliyorum çünkü iletişim formu 7 ile özel bir fonksiyon kullanıyordum (her formda ip adresini almak için) ve eklenti her güncellendiğinde tema bozuluyordu.
Thanks for the tip
Joana Pereira
kzain
Eklenti güncellemelerinin temaları bozmasıyla da aynı şeyi yaşadım! Bu baş ağrılarını önlemek için function_exists() kullanmak kesinlikle bir oyun değiştirici.
kovshenin
Right, only please stop checking for dynamic_sidebar with function_exists in WordPress themes, unless you need to support WordPress 2.2 and below, which I *highly* doubt. Also with the user photo plugin, the whole approach seems to be wrong and redundant to me, it looks like many developers are missing the whole point of pluggable functions…. Oh well