jquery.jpg
Merhaba uzun zamandır siteye bir şeyler yazamamıştım. Bu süre zarfında muzikkutum.net adından bir proje ile ilgilendim. Bugün daha önce yazdığım jquery ile ilgili yazılara bir yenisini ekleyerek adım adım wordpress için yorum sayfamızı nasıl jquery kullanarak geliştirebileceğimizi anlatacağım.

1) Dosyalarınızı Yedekleyin

işlemlerimize başlamadan önce dosyalarınız yedekleyin. kök dizininde bulunan wp-comments-post.php ve tema klasörünüzde bulunan header.php ve comments.php dosyalarının bir yedeğini alın.

2) Kodları Eklemeye Başlayalım

1.Adım: İlk olarak temamızın bulunduğu klasördeki header.php dosyasına jquery ve function.js dosyalarımızı gömüyoruz.

<script src="&lt;?php bloginfo('url'); ?&gt;&lt;!--
/jquery.js" type="text/javascript"><!--mce:0--></script>
<script src="&lt;?php bloginfo('url'); ?&gt;&lt;!--
/function.js" type="text/javascript"><!--mce:1--></script>

2.Adım: Şimdi temamızın bulunduğu klasördeki comments.php dosyasını bir editör ile açarak.

 

Yazan kısmın altına.

 

Kodlarını ekliyoruz. Böylece post işlemimizden sonra eklenen yazı bu özniteliği sonuc olan div tagının içinde gösterilecek.

3.Adım: Son olarak yine comments.php dosyasında

<form id="commentform" action="&lt;?php echo get_option('siteurl'); ?&gt;/wp-comments-post.php" method="post">
</form>

Kısmını

<form id="commentform" action="javascript:void(0)" method="post">
</form>
 
Ve yine aynı dosyada
<pre lang="php"><input id="submit" name="submit" type="submit" value="Submit Comment" />

Kısmını ise

<img id="load" style="display: none;" src="&lt;?php bloginfo('stylesheet_directory'); ?&gt;/images/loading.gif" alt="" vspace="3" align="left" />
<input id="submit" onclick="javascript:yorumpost();" name="submit" type="submit" value="Submit Comment" tabindex="5" />

İle değiştiriyoruz. Bu değişiklikerle beraber işlemimizin büyük bir kısmını bitirdik sayılır. Son olarak temamızın bulunduğu klasördeki stil dosyamıza şu kodları ekliyoruz.

.red{
background:#cc0000;
	color:#fff;
	padding: 5px;
}	
 
#sonuc{
padding: 5px;
display: none;
border: solid 1px #fff;
background: #abcdef;
color:#fff;
margin-bottom: 10px;
}

3) Dosyaları Yükleyin

Son olarak buradan indireceğiniz dosyaları uygun yerlere yüklediğinizde script çalışmaya başlayacaktır. jquery.js function.js ve wp-comments-post.php dosyalarını köke loading.gif dosyası ise temanızın bulunduğu klasördeki images klasörüne yükleyin işte bu kadar.

4) Açıklamalar

En Önemli kısıma geldik. Bence yukarıda yazılanları aynen uygulamaktan öte burada açıklayacaklarımı anlamanız daha önemlidir. İşin mantığını anladığımızda bu ve benzeri uygulamaları geliştirmek çok zor değil. en zor tarafı bunu bir makale haline getirmek :) ) Kodları tek tek açıklayacak olursak, önceliklik olarak function.js dosyasından başlayalım.

$.fn.fastSerialize = function() {
    var a = [];
    $('input,textarea,select,button', this).each(function() {
        var n = this.name;
        var t = this.type;
        if ( !n || this.disabled || t == 'reset' ||
            (t == 'checkbox' || t == 'radio') &amp;&amp; !this.checked ||
            (t == 'submit' || t == 'image' || t == 'button') &amp;&amp; this.form.clicked != this ||
            this.tagName.toLowerCase() == 'select' &amp;&amp; this.selectedIndex == -1)
            return;
        if (t == 'image' &amp;&amp; this.form.clicked_x)
            return a.push(
                {name: n+'_x', value: this.form.clicked_x},
                {name: n+'_y', value: this.form.clicked_y}
            );
        if (t == 'select-multiple') {
            $('option:selected', this).each( function() {
                a.push({name: n, value: this.value});
            });
            return;
        }
        a.push({name: n, value: this.value});
    });
    return a;
};
 
function yorumpost(){
$('#load').css( {display: 'block'} );
var keyword = $('#commentform').fastSerialize();
$.ajax({
type: 'POST',
url: '../wp-comments-post.php',
data: keyword,
success: function(msg) {
$('#load').css( {display: 'none'} );
$('#sonuc').html(msg);
$('#sonuc').fadeIn(2000);
}});
 
}

İlk olarak fastSerialize fonksiyonundan bahsedelim. fastSerialize kullanıcıların form alanındakileri bilgileri tamamını bie deÄŸiÅŸken olarak almamızı saÄŸlıyor. yorumpost fonksiyonunda var keyword = $(’#commentform’).fastSerialize(); ile id özniteliÄŸi commentform olan deÄŸiÅŸkenleri alarak keyword deÄŸilkenine atıyoruz.
Yorumpost fonksiyonu ilk olarak bizim comments.php sayfasında eklediÄŸimiz loading.gif resmini görünür hale getirerek loading.gif resmimizin görünür hale gelmesini saÄŸlıyor. jquery ile ajax iÅŸlemine baÅŸlıyoruz ve gönderilen deÄŸiÅŸkenlerin metodunu POST olarak belirliyoruz. Yorumları veritabanına ekleyecek dosyamızı da url özelliÄŸi ile belirtiyoruz. Daha sonra $(’#load’).css( {display: ‘none’} ); ile yazı eklendikten sonra loading.gif resmini yeniden görünmez kılıyoruz. ve özniteliÄŸi sonuc olan etiketimizi fadeIn efekti ile sayfaya yazdırıyoruz.
Örnek Kullanımı aşağıdaki formu doldurarak görebilirsiniz. :)

25 Yorum Yapılmış »

  1. bu benim ilk denemem :)

  2. deneme 1-2 :) bu jquery’de çok olmaya baÅŸladı ama.

  3. benim neyim eksik? ben de deneme yapacam :)

  4. ah birde turkce yazmayi becerebilsen.
    yazinin icinde kac tane turkce hatasi var?

  5. way amk

  6. deneme 3-4 :D

  7. yeni tema ile beraber form özelliklerini tekrar elden geçirmem gerekecek

  8. Bu gibi durumlarda önce teşekkür edilir gibi geliyor, irdelemeden önce!
    Sanırım örneği görebilmek için buraya yorum yapmak gerekiyor :)

  9. asdasdads

  10. deneme yapıyoruz

  11. aaa

  12. çok şık bir paylaşım olmuş

  13. çok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuş

  14. çok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuşçok şık bir paylaşım olmuş

  15. bu da deneme .. :) )

  16. bu da deneme

  17. sdfsd sd fsd f

  18. fsdfsdf

  19. nasıl hareket ediyormuş bu yorumlar (:

  20. hele gardaş noldi hani referans link caps vs. bişe koyabilirdin hiç bişey olmasa bile bi caps konurdu be usta ferruh.mavitunanın hareketli yorumuna benzer bişeymi bu ? (yorumlara tıklayınca zarrrıt diye açılan(güzel bir efekle açılıyor(küçük dikdörtgen büyüyerek)))

  21. 2.Adım: Şimdi temamızın bulunduğu klasördeki comments.php dosyasını bir editör ile açarak.

    [Ne yazan kısım bir şey yazmıyorki]

    Yazan kısmın altına.

    [malesef buradada bir şey yazmıyor :D ]

    Kodlarını ekliyoruz. Böylece post işlemimizden sonra eklenen yazı bu özniteliği sonuc olan div tagının içinde gösterilecek.

  22. dfgdfg

  23. güzel bir örnek olmus. ben de bir deneme yapicam

  24. bakalım bakalım

  25. güzel bir uygulama olmuş

Çekinmeyin Yorumlarınızı Yazın