Merhaba bu günkü eğitimde wordpress güvenlği ve geliştirme için çok önemli olan bir konuyu anlatacağım. Wordpress ile eklenti veya tema geliştirirken bazen farklı PHP dosyalarında işlem yapmaktayız.
Örneğin;
_eklenti_yolu_/process/?fonksiyon=makale_ekle
eklentinizden böyle bir yolla post edip makale eklemek istediğinizi varsayalım bu durumda wordpress özelliklerini kullanabilmwk için wordpress özelliklerini PHP dosyanıza eklemeniz gereklidir. Aşğıdaki kodu kullanarak wordpress özelliklerini PHP dosyanıza entegre edebilirsiniz.
require_once _ROOT_DIZIN_.'wp-load.php';
_ROOT_DIR_ örnek bir metindir oraya wordpress kurulu olan ana dizini yazmalısınız. Herkeste farklıdır. Kimisi direkt ana dizine kurar kimisi /wordpress, /wp gibi alt dizinlere kurabilir. Ana dizine kurmuşsanız. $_SERVER['DOCUMENT_ROOT'] işinizi görecektir.
Wordpress özelliklerini PHP dosyamıza ekledik dosyanın güvenliğini nasıl sağlarız. Arkadaşlar eğer sisteme veri ekletecekseniz (post, sayfa, ortam vs.) kullaıncı giriş yapmış mı? ve kullanıcı yönetici mi? kontrol ettirmelisiniz aşağıdaki kod sayesinde bu kontrolleri yapabilirsiniz.
WordPress'te bir PHP sayfasında kullanıcının giriş yapıp yapmadığını ve admin olup olmadığını kontrol etmek için current_user_can()
fonksiyonunu kullanabilirsiniz. Bu fonksiyon, kullanıcıların belirli yetkilere sahip olup olmadığını kontrol etmek için oldukça kullanışlıdır.
Aşağıda, bir PHP sayfasında kullanıcı giriş yapmış ve admin olup olmadığını kontrol eden bir örnek kod bulabilirsiniz. Eğer kullanıcı giriş yapmamışsa veya admin değilse, sayfayı çalıştırmadan çıkacaktır.
<?php
// WordPress ortamını yükle
require_once('wp-load.php');
// Kullanıcının giriş yapıp yapmadığını ve admin olup olmadığını kontrol et
if ( ! is_user_logged_in() || ! current_user_can('administrator') ) {
// Kullanıcı giriş yapmamış veya admin değilse çık
exit('Erişim reddedildi. Bu sayfayı görüntüleme izniniz yok.');
}
// Buraya admin kullanıcılar için izin verilen kodlar gelecek
echo 'Hoş geldiniz, admin!';
?>
require_once('wp-load.php');
:
wp-load.php
dosyası, WordPress çekirdek dosyalarını yükler ve WordPress fonksiyonlarını kullanmanıza olanak sağlar. Bu dosyanın yolu, sayfanızın bulunduğu dizine göre değişebilir, bu yüzden doğru yolu belirlediğinizden emin olun.is_user_logged_in()
:
false
döner.current_user_can('administrator')
:
'administrator'
yetkisi, kullanıcıyı admin olarak tanımlar. Bu fonksiyon true
dönerse, kullanıcı admin'dir; aksi halde false
döner.exit('Erişim reddedildi. Bu sayfayı görüntüleme izniniz yok.');
:
Admin kullanıcılar için kod:
echo 'Hoş geldiniz, admin!';
ifadesi, sadece admin olan kullanıcılar için çalışır. Burada adminlere gösterilmesi gereken içeriği veya işlemleri ekleyebilirsiniz.Bu kod parçasını kendi WordPress yapınıza ve ihtiyaçlarınıza göre uyarlayabilirsiniz.