WordPress, varsayılan olarak yorum alanında 65525 karaktere izin verir ve bu da yaklaşık 20 adet A4 sayfasına eşittir…
WordPress yorumlarında karakter sınırını comment-template.php dosyasının kontrolüne bıraktığınızda 20 A4 sayfası uzunluğundaki yorumlara izin vermiş oluyorsunuz. 65525 karaktere izin verilebilecek ve hatta bu sınırın da ötesine geçilebilecek kategoride yayın yapan web siteleri olabilir; ama WordPress ile desteklenen web sitelerinin genellikle yorum alanlarında 65525 karaktere de gerçekten ihtiyacı yoktur. 65525 karakter ve daha fazlasına ihtiyaç duyulan durumlarda ise özetinin gösterilmesi gerekir.
Bu anlatımda şimdilik üzerinde çalıştığımız şey 65525 karakteri; WordPress’in çekirdek dosyasına müdahale etmeden JavaScript kullanarak kontrol etmek. WordPress yorum alanını PHP ile kontrol etmek mümkündü ve WordPress yorum eklentisi kullanmak yerine daha kararlı olarak PHP ile ele alınmıştı; ama JavaScript ile kontrol etmek, kalan karakterlerin ön izlemesi ve karakter sınırına ulaşıldığında düğmenin gizlenmesi ya da işlevselliğinin durdurulması gibi iki avantaj veriyor.
WordPress yorumlarında karakter sınırını kontrol etmek, yorumların moderatör onayından geçmediği web siteleri için önemli olabilir. Spam filtresini delen trol 65525 karakterlik bir yazı ile yorum alanını; en azından bir süre için manipüle etmeye başarabilir. Bu kontrolü yaparken meşru ziyaretçi ve kullanıcılara da kötü bir deneyim vermemek için kullandıkları karakter sayılarını göstermek gerekirdi. WPEnvolay’daki yorum alanı da aynı kodu kullanıyor. (Bu işlev, önce wpcmstest.xyz sitesinde izlenmiş ve yazılan kod doğrulanmıştı).
WordPress Karakter Sınırı
Kodu, genellikle temanızın /assets/js klasöründe bulunan global.js ya da temanızın direkt ana dizininde yer alan js klasöründeki template.js dosyasında en alta eklemeniz yeterlidir. (JS işlevlerinin beslendiği klasör ve dosya adları tema üreticilerine göre keyfi farklılık gösterebilir).
Değişikliği izlemek için önbelleği boşaltın
Güncellenen WordPress sürümlerinde kaldırılırsa DOM / HTML verileri .bind yerine .on işlevi ile bağlayın:
1 | wpenvolay_comment_input.on( 'keyup', function() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | /* Karakter limit WPEnvolay.com */ jQuery (function($) { // WordPress default commentform - var wpenvolay_comment_input = $ ( '#commentform textarea' ); var wpenvolay_submit_button = $ ( '#commentform .form-submit' ); var wpenvolay_comment_limit_character = 1000; /* limit */ // Kalan karakterleri goster $ ('<div class="comment_wpenvolay_limit"><span>' + wpenvolay_comment_limit_character + '</span> Karakter Kaldı</div>').insertAfter(wpenvolay_comment_input); // Karakterleri hesapla wpenvolay_comment_input.bind( 'keyup', function() { /* sadece tusa basma islevini tetiklemek icin .keyup yerine .keypress */ var comment_length = $(this).val().length; var character_left = wpenvolay_comment_limit_character - comment_length; $ ('.comment_wpenvolay_limit span').html( character_left ); // Karakter limit bitince gonder botununu gizle if (wpenvolay_submit_button) ( character_left < 0 ) ? wpenvolay_submit_button.hide() : wpenvolay_submit_button.show(); }); }); /* Karakter limit WPEnvolay.com */ /** CSS stilleri icin .comment_wpenvolay_limit {} #commentform >p.comment-form-comment>div>span {} */ |
Bu senaryonun ilk yazarı: Eric Teubert, gist.github.com/eteubert/1422754
Gerçekten aradığım bir konuydu, çalıştı, çok teşekkür ederim elinize sağlık.