it-swarm.asia

Yorumlardaki Dış Linklerin Sayısı - Moderasyon Seçeneği

Blogumda Comment Modeeration count Option için dış bağlantıların sayısının (kendi bloguma bağlanan veya mutlak bağlantıların olmadığı anlamına gelir) bağlantılarını doğru bir şekilde kullanmak için bir sorunla karşılaştım.

Etiketlendi [Buradaki numaranız] veya daha fazla bağlantı içeriyorsa, sıradaki bir yorumu tutun. (Yorum spam'inin genel bir özelliği çok sayıda köprüdür.) Wordpress Back-end'de Ayarlar -> Tartışma üzerine. Ekran görüntüsü:

alt text

Şu anda tüm bağlantıları inkl saydığını biliyorum. bloga ve diğer yorumlara bağlantılar (burada bildirildi: # 14681 ) ancak zaten bir eklenti veya hack bulunmadığını hayal edemiyorum Bu, yalnızca dış bağlantılara sayımı doğru düzeltir.

Öyleyse sorum şudur: Wordpress'in Denetleme Seçenekleri'nin yorumlarında yalnızca dış bağlantıları saymasını düzgün yapan bir eklenti/kesmek var mı?

3
hakre

Haha, aslında bunu yapmanın bir yolunu buldum. Bir eklenti olarak, bu çalışması gerekir.

class JPB_CommentCounter {

  var $count = 0;

  function __construct(){
    add_filter( 'pre_comment_content', array( $this, 'content' ), 100 );
    add_filter( 'comment_max_links_url', array( $this, 'counter' ) );
  }

  function JPB_CommentCounter(){
    $this->__construct();
  }

  function counter( $num, $url ){
    if($this->count < 1)
      return $num;
    elseif( $this->count > $num )
      return 0;
    else
      return $num - $this->count;
  }

  function content( $content ){
    $homeurl = preg_quote( home_url() );
    if( preg_match_all( '@<a [^>]*href=[\'|"](/|'.$homeurl.')@i', $content, $matches ) )
      $this->count = count($matches[0]);
    return $content;
  }

}

$JPBCC = new JPB_CommentCounter();

Bunu hiçbir şekilde test etmediğimi de eklemeliyim. Ancak teorik olarak çalışması gerekir.

1
John P Bloch

Şimdi wordpress 3.0 ile yorum eklemek için temel bağlantı sayma arayüzünü sunan bir komple bir eklenti yazdım. John'un önerdiklerine ek olarak, yorum yapmak suretiyle tetiklenen kancaları izlemeye dayanarak bazı değişiklikler/eklentiler yaptım. Bunu sadece istediğimde yeni bir yorum eklendiğinde çalıştırılmak istedim.

Bu nedenle, comment_text kancası yerine pre_comment_content öğesini seçtim. Gerisi temelde aynıdır, ancak bazı akıl sağlığı kontrolleri eklendi, böylece sadece bir kez yapılmalı ve sadece yeni bir yorum eklemeye başladı. Ek bir (ancak şu anda uygulanmayan) kontrol, yalnızca comment_max_links seçeneğinin get_option() (pre_option_comment_max_links-hook) tarafından okunduktan sonra yapılmasını sağlamak olacaktır, ancak bu testten geçtiği anda, şimdiye kadar yapmadım.

kaynak kodu trac ile çevrimiçi olarak görüntülenebilir.

Ben de cevabı vereceğim, ilk önce aynı prensibi yayınladığı için onun önerisini ben seçmedim bile.

1
hakre