Geçenlerde bir kullanıcı bize WordPress sitenize yeni bir kod eklemeden önce bir PHP fonksiyonunun var olup olmadığını nasıl kontrol edeceğini sordu.
WordPress’in en iyi yanı, web sitenize kendi özel işlevlerinizi ekleyebilmeniz de dahil olmak üzere esnekliğidir. Ancak, bazen özel kodunuz çalışmayabilir çünkü atıfta bulunduğu işlev artık mevcut değildir.
Bu makalede, WordPress temanıza eklemeden önce bir işlevin var olup olmadığını nasıl kolayca kontrol edeceğinizi göstereceğiz.
Özel Kodunuza Neden ‘If Function Exists’ Eklemelisiniz?
WordPress temel olarak PHP programlama dilinde yazılmıştır. PHP, WordPress barındırma sağlayıcınızın sunucularında çalışan sunucu taraflı bir programlama dilidir.
PHP kodu, sayfa ziyaretçilerinizin tarayıcılarına yüklenmeden önce çalışmayı bitirmek zorunda olduğundan, 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 işlev kodun geri kalanının çalışmasını engelliyorsa, kod 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 sebep olabilir?
Bu, düşündüğünüzden daha yaygın bir WordPress hatasıdır.
Örneğin, WordPress eklentilerinizden birinin temanızın üstbilgi veya altbilgi alanına eklediğiniz bir işlevle birlikte geldiğini varsayalım. Eklentiyi devre dışı bırakmak, işlevin kaybolmasına ve WordPress web sitenizde kritik hataya neden olacaktır.
Bununla birlikte, WordPress tema dosyalarınızda çalıştırmadan önce bir işlevin var olup olmadığını nasıl kolayca kontrol edebileceğinize bir göz atalım.
WordPress’te Bir İşlevin Var Olup Olmadığını Kontrol Etme
Neyse ki PHP programlama dili, bir işlevi çalıştırmadan önce var olup olmadığını kolayca kontrol etmek için yerleşik bir yöntemle birlikte gelir.
Diyelim ki saat dilimi bilgisiyle birlikte geçerli saati gösteren bir WordPress işleviniz var. İşte bunu denemek için kullanabileceğiniz örnek bir kod parçacığı.
Doğrudan temanızın functions.php dosyasına ekleyebilirsiniz, ancak bu eğitimde WPCode kod parçacığı eklentisini kullanacağız çünkü WordPress’te özel kod eklemenin en güvenli ve en kolay yolu budur.
Öncelikle, WPCode Ücretsiz Eklentisini yüklemeniz ve etkinleştirmeniz gerekir. Bunu yapmak için yardıma ihtiyacınız varsa, lütfen bir WordPress eklentisinin nasıl kurulacağına ilişkin adım adım başlangıç kılavuzumuza bakın.
Etkinleştirmenin ardından, WordPress panonuzda Kod Parçacıkları ” + Parçacık Ekle bölümüne gitmeniz gerekir. Orada, farenizi ‘Özel Kodunuzu Ekleyin (Yeni Snippet)’ seçeneğinin üzerine getirin ve ardından görünen ‘Snippet kullan’ düğmesine tıklayın.
Bu, özel kod parçacığınızı ekleyebileceğiniz yeni bir sayfa açacaktır. ‘Saat Dilimi ile Geçerli Saati Göster’ gibi bir başlık yazın ve ardından aşağıdaki kod parçacığı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çeneğini seçmeniz gerekir.
Son olarak, Etkinleştir geçişini Açık konuma getirmeli ve yeni kod parçacığınızı saklamak için ‘Parçacığı Kaydet’ düğmesine tıklamalısınız.
Bu işlevi çağırmak için, WordPress temanızda geçerli saati görüntülemek istediğiniz herhangi bir yere aşağıdaki kodu eklemeniz gerekecektir.
<?php wpb_show_timezone(); ?>
Test web sitemizde bu şekilde görünüyordu.
Şimdi, bu işlevi yürütmekten sorumlu kod ortadan kalkarsa ne olur?
Fonksiyona yapılan çağrı web sitenizi şu şekilde bozacaktır.
Bu kodun yalnızca işlev 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() fonksiyon
unu kullanıyoruz. Bu fonksiyon bir fonksiyonun var olup olmadığını kontrol eder ve True ya da False döndürür.
Ardından, işlevin kullanılabilirliğine bağlı olarak uygun eylemi gerçekleştirmek için bir if-else koşulu ekledik.
Şimdi, işlev artık kullanılamadığında, kod basitçe onu atlayacak ve WordPress web sitenizin geri kalanını normal şekilde yükleyebilecektir.
Umarız bu makale WordPress’te bir fonksiyonun var olup olmadığını nasıl kontrol edeceğinizi öğrenmenize yardımcı olmuştur. Ayrıca eksiksiz WordPress sorun giderme kılavuzumuzu veya en iyi sürükle ve bırak WordPress sayfa oluşturucuları için uzman seçimlerimizi görmek isteyebilirsiniz.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Rakib
really helpful
Joana Pereira
Good call Kovshenin. I know exactly what you mean because I was using a custom function with contact form 7 (to retrieve the ip address on each form) and every time the plugin was updated, the theme broke.
Thanks for the tip
Joana Pereira
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