WordPress yazı ve yorumlarında otomatik içerik değiştirme

PHP Script
Wordpress yazı ve yorumlarda otomatik içerik değiştirme ihtiyacı yazılardaki kodları renklendirmek için kullandığım syntax highlighter eklentisinden vaz geçince ortaya çıktı.

Eklenti yerine

1
2
3
<pre>
kodlar...
</pre>

taglarını kullanmaya başladım fakat eski ve yeni yazılardaki kodlarda sorunlar oldu, “<” “>” simgeleri görünmüyordu, yazıyı düzenlemek istediğimde panelde görünüyorlar ama okur bölümüne yansımıyordu, bu simgelerin yerine html kodlarını eklersem yazıda sorunsuz görünüyorlar

1
2
3
< için: &lt;
 
> için: &gt;

Biraz araştırınca syntax highlighter eklentisinde bu tip sorunlar için önlem alındığını gördüm ama nasıl yapılmış nedir çözemedim uzun süre araştırdım çeşitli kodlar denedim olmadı yapmak istediğim yazıdaki "< >" işaretlerini otomatik olarak “&lt; &gt;” olarak göstermek için en son Caner kardeşime danıştım 🙂 kalp kalbe karşıdır kendiside “PHP ile web tabanlı mail gönderme (iletişim) scripti” yazısında benzer otomatik değiştirme kodları (kod arındırma fonksiyonu) kullanmış.

Sağ olsun aşağıdaki kodları gönderdi denedim fakat çalışmadı, gerçi sorunu daha açık anlatabilseydim sanırım farklı olurdu 😀

1
2
3
4
5
6
function kod_degistir($text) {
   $text = trim($text);  
   $ara = array(&#39;');  
  $degistir = array('&lt;','&gt;');  
   $yeni_text = str_replace($ara,$degistir,$text);  
   return $yeni_text; }

WordPress temalarının functions.php dosyalarını inceledim bir kaç denemede kodları çalıştırabildim fakat hesapda olmayan bir sorun ortaya çıktı 🙂

bu durumda simgeleri değiştirmekten vaz geçtim, yazılarda verilen kodlar mikrodenetleyici kodları olduğu için belli kelimeleri değiştirmek daha mantıklı oldu gerçi sadece <pre> <pre> tagları arasındaki simgeleri değiştirecek bir kod yazmak isterdim ama ne yazık ki php bilgim yok denecek kadar az 🙂

Yeni kodlar

1
2
3
4
5
6
7
8
function kod_degistir($text) {
   $text = trim($text);  
   $ara = array('','');  
   $degistir = array('&lt;delay.c&gt;','&lt;pic.h&gt;');  
   $yeni_text = str_replace($ara,$degistir,$text);  
   return $yeni_text; }
   
add_filter('the_content', 'kod_degistir');

Yukarıdaki kodları temamızın functions.php dosyasına ekliyoruz ve yazılanlar otomatik olarak & lt;delay.c& gt; & lt;pic.h& gt; olarak görünüyor, tabi sadece görünüyor, bu bir nevi kandırmaca 🙂 yazının kaynağında ne eklenmişse o görünür benim başım <delay.c> ve <pic.h> kodları ile dertte olduğu için yukarıdaki kodları kullandım.

Sizler farklı kelimeler için kullanabilirsiniz, örneğin:

1
2
3
4
5
6
7
8
function kod_degistir($text) {
   $text = trim($text);  
   $ara = array('slm','mrb');  
   $degistir = array('selam','merhaba');  
   $yeni_text = str_replace($ara,$degistir,$text);  
   return $yeni_text; }
   
add_filter('the_content', 'kod_degistir');

Örnekte gördüğünüz gibi yazıdaki “slm” otomatik olarak “selam” olarak değiştirilecek, “mrb” ise “merhaba” olarak görünecek, tabiki bu uygulama sadece yazı alanı için geçerli, yorumlar için kullanmak isterseniz aşağıdaki kodları kullanmalısınız, tek değişiklik add_filter bölümüne the_content yerine comment_text ekledik

1
2
3
4
5
6
7
8
function kod_degistir($text) {
   $text = trim($text);  
   $ara = array('slm','mrb');  
   $degistir = array('selam','merhaba');  
   $yeni_text = str_replace($ara,$degistir,$text);  
   return $yeni_text; }
   
add_filter('comment_text', 'kod_degistir');

Kolay gelsin.

Facebook Yorumları

3 Yorum

  1. Remzi

    Allah senden razı olsun kardeş.50k lık siteyi kurtardın vallahi. Çok çok teşekkürler. Böyle faydalı bilgiler paylaşmaya devam etmen dileğiyle..

Uyarı: Yorumlarda link kullanmayınız. Link içeren yorumlar otomatik olarak spam kabul edilmektedir.

Bir Cevap Yazın

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