WordPresste Özel Url Kuralı Ekleme

WordPress eklenti sistem gerçekten istediğiniz yere istediğiniz değişikliği yapmanıza izin verecek kadar esnek. Url’den gelen dinamik içeriklerin tek bir sayfaya yönlenmesine ihtiyaç duyduğunuzda hiç htaccess dosyasına gerek kalmadan birkaç fonksiyon ile wp sistemine özel url rewrite kuralı ekleyebiliyorsunuz.

Kullanacağımız fonksiyonlar add_rewirte_rule ve add_rewrite_tag. Kullanımları oldukça basit.

Önce rewrite edilecek url ifadelerini belirli url’ye yönlendiriyoruz.

function rewrite_kurallar() {
    add_rewrite_rule('^ozelurl/(.+)/?$','index.php?page_id=999&ozelurl=$matches[1]','top');
}
add_action('init', 'rewrite_kurallar');

Burada add_rewrite_rule metodu ile site.com/ozelurl/ozelurlparametresi şekllinde gelen url’lerin, page_id’si 999 olan,daha önceden oluşturulmuş bir sayfaya yönlendirilmesini, yönlendirilirkende ozelurlparametresi kısmını parametre olarak göndermesini sağlıyoruz. Siz sayfaya(page) değilde yazıya(post) yönlendirme  yapacaksanız             ?p=999 olarak kullanmalısınız.
Ardından add_action ile, plugin aktif edildiğinde bu fonksiyonun kayıt edilmesini sağladık.

Eklediğimiz bu kuralda, parametreleri yakalamak için bir etiket oluşturmamız gerekiyor:

function rewrite_etiketler() {
    add_rewrite_tag('%ozelurl%', '([^&]+)');
}
add_action('init', 'rewrite_etiketler');

add_rewrite_tag metodu ile ozelurl olarak çağrılan bir query parametresi oluşturduk ve eklenti aktif edildiğinde fonksiyonun kayıt edilmesini sağladık.

Buraya kadar herşey tamam. Fakat url rewrite işlemi tek seferde gerçekleşen ve statik bir dosyada tutulan özellik olduğu için, bu statik veriyi güncellememiz gerekiyor. Bunun için eklenti eklendiği an önbellek yenilensin:

add_action( 'init', 'flush_rewrite_rules');

Hepsini bir araya getirisek;

// 
function rewrite_kurallar() {
    add_rewrite_rule('^ozelurl/(.+)/?$','index.php?page_id=999&ozelurl=$matches[1]','top');
}
add_action('init', 'rewrite_kurallar');

function rewrite_etiketler() {
    add_rewrite_tag('%ozelurl%', '([^&]+)');
}
add_action('init', 'rewrite_etiketler');


add_action( 'init', 'flush_rewrite_rules');

Gönderdiğimiz ozelurl parametresini yakalamak için ise, eklediğimiz etiketi get_query_var metodu ile çağırıyoruz.

get_query_var( 'ozelurl' );

Örnek kullanım olarak, sitenize gelen yanlış url’leri ya da değiştirdiğiniz/kaldırdığınız url’leri bir sayfaya yönlendirip gelen arama kelimesini işleyebilir, urlden aldığınız parametreye özel içerik gösterebilirsiniz.

Kolay gelsin.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir