Fonksiyon Tanımı : add_filter

Varolan bir fonksiyonu ya da aksiyonu genişletmek için kullanılan filtre fonksiyonudur add_filter. Bir önceki fonksiyon tanımı yazımda yazmış olduğum örnekten de görebileceğiniz gibi çalışır. WordPress Codex sayfası olan şu sayfada kullanımı için şu örnek verilmiştir.

add_filter kullanımı;

Codex sayfasında anlatılan kullanım şu şekildedir;

<?php add_filter( $tag, $function_to_add, $priority, $accepted_args ); ?> 

Kod içindeki tanımlar da şunları açıklar;

  • $tag : Genişletilecek (filtre uygulanacak) varolan fonksiyon
  • $function_to_add : Filtre olarak uygulancak fonksiyonumuz
  • $priority : Filtre uygulanırken gözlenecek öncelik -sayısal değerdir- (boş bırakılırsa 10 değeri işlenir)
  • $accepted_args : Kısa Kod (Shortcode) gibi alanlarda ve fonksiyonun kullanabileceği ekstra değerleri tanımlamak için kullanılır

add_filter kullanımı için örnek;

Daha önce bu fonksiyonu sizinle paylaştım sanırım ama yazılara bakacak kadar enerjim yok şu an. Aşağıda görebileceğiniz fonksiyonda, yazıya ve yorum alanındaki yorumlara twitter kullanıcı adı (misal @serkanalgur) eklediğinizde bunu otomatik olarak linkleyen bir kod var. Bunu yazıya ve yorum alanındaki yorumlara ekletebilmek için the_content ve comment_text alanına filtre uygulamamız gerekmekte. Bunu da add_filter fonksiyonunu kullanarak yapıyoruz. Keza yukarıda parantez içinde benim kullanıcı adım linklenmiş durumda :)

Aşağıda vereceğim fonksiyon temanızın functions.php dosyasında kullanılması gerekmektedir. Bu dosya temanızın en önemli dosyası olduğundan lütfen işlem yapmadan önce yedek alınız. Bu dosya yol olarak wp-content/themes/temanızın-adı/ yolunda bulunur.
function twtreplace($content) {
 $twtreplace = preg_replace('/([^a-zA-Z0-9-_&])@([0-9a-zA-Z_]+)/',"$1<a href=\"http://twitter.com/$2\" target=\"_blank\" rel=\"nofollow\">@$2</a>",$content);
 return $twtreplace;
}

add_filter('the_content', 'twtreplace');
add_filter('comment_text', 'twtreplace');

Bu örnekteki kodu temanızın functions.php dosyası içerisine ekleyebilirsiniz.

Bir sonraki yazının arasını çok tutmayacağım, söz :)
Selametle

Serkan Algur: WordPress ile uğraşan deli bir adam...

This website uses cookies.