Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
functions.php dosyasına kod eklerken en önemli noktalar; doğru temaya veya alt temaya müdahale etmek, PHP sözdizimini bozmamak, mevcut kodu silmemek ve eklediğiniz işlevi benzersiz bir adla tanımlamaktır. Ana temanın dosyasını değiştirirseniz tema güncellemesinde kodunuz silinebilir. Bu nedenle tema davranışıyla ilgili kodlar için tercihen alt temanın functions.php dosyasını, temadan bağımsız kodlar içinse özel bir eklentiyi kullanın.

Dosyaya kod eklemeden önce​


  1. Etkin temayı ve mümkünse etkin alt temayı belirleyin. Kodun çalışacağı functions.php dosyasını kullandığınız temaya göre seçin; pasif bir temanın dosyasına eklenen kod sitede çalışmaz.
  2. Dosyanın mevcut hâlinin yedeğini alın. En azından değiştirmeden önce dosyanın tamamını bilgisayarınıza indirin.
  3. Kodun nereye ekleneceğini kontrol edin. Dosya <?php ile başlıyorsa, dosyanın ortasına tekrar <?php yazmayın. Tema dosyasında açılış etiketi yoksa kod çalışmaz; ancak mevcut açılış etiketinin içine eklenen kodun önüne yeni bir etiket koymak da sözdizimi hatasına yol açabilir.
  4. Kodun kullandığı kanca adını ve fonksiyon adını kontrol edin. Aynı fonksiyon adı daha önce tanımlanmışsa PHP hata verebilir.

Dosyanın sonunda ?> kapanış etiketi bulunması zorunlu değildir. Kapanış etiketini eklememek, dosyanın sonuna yanlışlıkla boşluk veya görünmez karakter yazılması gibi sorunları azaltır. Kodun son satırından sonra dosyanın mevcut yapısını bozacak rastgele karakter bırakmayın.

Çalışan en küçük örnek​


Aşağıdaki örnek, sayfanın HTML gövde sınıflarına site-ornek adını ekler. Böylece CSS veya başka bir tema özelleştirmesi bu sınıfı kullanabilir.

Önce deneme ortamında uygulayın; dosyaya erişebildiğiniz FTP/panel yolunu koruyun. PHP CLI varsa php -l functions.php sözdizimini kontrol eder; bu kontrol WordPress kancalarının veya uygulama davranışının doğru olduğunu tek başına kanıtlamaz. Yeni ve boş bir functions.php dosyası oluşturuyorsanız örneği açılış etiketiyle kullanın. Mevcut bir dosyaya ekliyorsanız yalnızca <?php satırını eklemeyin:

Kod:
<?php

function ornek_site_body_class( $classes ) {
    $classes[] = 'site-ornek';
    return $classes;
}
add_filter( 'body_class', 'ornek_site_body_class' );

Kodu kaydedip siteyi açtığınızda işlem başarılıysa sayfanın HTML çıktısındaki body etiketinde site-ornek sınıfını görürsünüz. Sınıf görünmüyorsa yanlış temanın dosyasını değiştirmiş, kodu dosyanın PHP bölümü dışına koymuş veya tema body_class kancasını kullanmıyor olabilir. Beyaz ekran, PHP hata mesajı ya da yönetim paneline erişememe oluşursa son eklediğiniz kodu geri alın; dosyanın yedeğini geri yüklemek en hızlı düzeltme yoludur.

Kodun yerini seçme kararı​


Aynı kod her zaman functions.php dosyasına konmamalıdır. Kodun yaşam süresi, yer seçiminde temel ölçüttür:

Kodun amacıUygun yerDikkat edilmesi gereken
Yalnızca belirli temanın görünümü veya davranışıAlt tema functions.phpAlt tema değişirse kod da devre dışı kalabilir
Tema değişse de devam etmesi gereken işlevÖzel eklenti veya siteye özel eklentiİşlevi temadan bağımsız tutun
Kısa süreli denemeDeneme ortamında yedeği korunmuş dosya veya yönetilen kod parçacığıDeneme bittiğinde kodu kaldırın ve çakışmayı kontrol edin

Sık yapılan hatalar​


Ana temaya doğrudan eklemek: Tema güncellendiğinde değişiklik kaybolabilir. Özelleştirme için alt tema kullanın; alt tema functions.php dosyasına ana temadaki dosyanın tamamını kopyalamayın. Yalnızca gereken kodu ekleyin.

Fonksiyon adını genel seçmek: custom_function gibi yaygın adlar başka bir tema veya eklentiyle çakışabilir. Siteye özgü bir ön ek kullanın; örnekteki ornek_ gibi.

Noktalı virgül ve parantezleri bozmak: Yeni koddan önceki satırın noktalı virgülünü silmek veya kapanış parantezini unutmak, hatanın başka bir satırda görünmesine neden olabilir. Sorun çıkarsa önce son eklediğiniz bölümü ve hemen üstündeki satırı karşılaştırın.

Aynı kodu iki kez eklemek: Aynı adlı fonksiyonu yeniden tanımlamak fatal hata üretebilir. WordPress’te aynı callback’i aynı kancaya ve aynı önceliğe tekrar kaydetmek genellikle ikinci ayrı kayıt oluşturmaz; farklı öncelikler, farklı callback’ler veya farklı kod yolları ise aynı işi tekrarlatabilir. Kodu eklemeden önce dosyada fonksiyon adını arayın.

Çıktıyı yanlış yerde üretmek: functions.php dosyasına doğrudan HTML yazmak yerine uygun WordPress kancasını kullanın. İşlevi bir kancaya bağlamak, çıktının ne zaman üretileceğini ve başka kodlarla nasıl çalışacağını belirginleştirir.

Kaynaklar​



Sık sorulan sorular​


functions.php dosyasını değiştirince site açılmıyorsa ne yapılır?​


Son eklenen kodu kaldırın veya değiştirmeden önce aldığınız yedeği geri yükleyin. Hatanın nedeni genellikle eksik parantez, yanlış PHP etiketi, eksik noktalı virgül ya da aynı fonksiyonun ikinci kez tanımlanmasıdır.

Alt tema kullanırken ana temanın functions.php dosyası kopyalanmalı mı?​


Hayır. Alt temanın dosyası ana temanın dosyasını otomatik olarak kopyalayan bir yedek değildir. Alt temada yalnızca kendi ek kodlarınızı bulundurun; gerekli işlevleri uygun kancalarla ana temanın işleyişine bağlayın.

Her özel kod functions.php içine mi eklenmelidir?​


Hayır. Tema görünümüne bağlı kodlar burada bulunabilir; tema değişse de korunması gereken işlevler ise özel bir eklentide tutulmalıdır.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.