Wordpress özelliklerini harici PHP dosyalarında kullanmak

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.

Wordpress özelliklerini harici PHP dosyalarında kullanmak

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.

PHP dosyasının güveliğini sağlamak

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!';
?>

PHP dosyasının güveliğini sağlamak Açıklamalar:

  1. require_once('wp-load.php');:

    • Bu satır, WordPress'in gerekli fonksiyonlarını ve ortamını yükler. 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.
  2. is_user_logged_in():

    • Bu fonksiyon, kullanıcının giriş yapıp yapmadığını kontrol eder. Giriş yapmamış bir kullanıcı varsa, false döner.
  3. current_user_can('administrator'):

    • Bu fonksiyon, kullanıcının belirli bir yetkiye sahip olup olmadığını kontrol eder. 'administrator' yetkisi, kullanıcıyı admin olarak tanımlar. Bu fonksiyon true dönerse, kullanıcı admin'dir; aksi halde false döner.
  4. exit('Erişim reddedildi. Bu sayfayı görüntüleme izniniz yok.');:

    • Kullanıcının yetkileri uygun değilse veya giriş yapmamışsa, bu kod ile sayfanın çalışması durdurulur ve kullanıcıya bir hata mesajı gösterilir.
  5. 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.