Frage

Ich habe gerade ein Problem durchlaufen, um die Anzahl externer (was keine relativen oder absoluten Links zu meinem eigenen Blog) in meinem Blog zu verwenden Kommentar Moderation Zähloption.

Es ist beschriftet Halten Sie einen Kommentar in der Warteschlange, wenn es [Ihre Nummer hier] oder mehr Links enthält. (Ein gemeinsames Merkmal des Kommentars Spam ist eine große Anzahl von Hyperlinks.) Über Einstellungen -> Diskussion im WordPress -Back -End. Bildschirmfoto:

alt text

Mir ist bewusst, dass es derzeit alle Links inkl zählt. Links zum Blog und anderen Kommentaren (gemeldet es hier: #14681) Aber ich kann mir nicht vorstellen, dass es kein Plugin oder Hack gibt, das die Anzahl nur für externe Links ordnungsgemäß korrigiert.

Meine Frage lautet also: Gibt es ein Plugin / Hack, das WordPress nur die externen Links in Kommentaren für seine Moderationsoptionen richtig zählt?

War es hilfreich?

Lösung

Haha, ich habe tatsächlich einen Weg gefunden, dies zu tun. Als Plugin sollte dies funktionieren.

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();

Ich sollte hinzufügen, dass ich dies in keiner Weise getestet habe. Aber es sollte theoretisch funktionieren.

Andere Tipps

Ich habe jetzt a geschrieben Komplettes Plugin Dies bietet die grundlegende Link -Zählschnittstelle zum Hinzufügen von Kommentaren mit WordPress 3.0. Zusätzlich zu dem, was John vorgeschlagen hatte, habe ich einige Änderungen / Addings vorgenommen, die auf der Verfolgung der Hooks ausgelöst werden, indem der Kommentar hinzugefügt wurde, da ich diesen nur ausgeführt werden wollte, wenn tatsächlich ein neuer Kommentar hinzugefügt wird.

Ich habe deshalb das gewählt comment_text anstelle von pre_comment_content Haken. Der Rest ist im Grunde genommen derselbe, aber einige Gesundheitskontrollen wurden hinzugefügt, so dass nur einmal und beim Hinzufügen eines neuen Kommentars nur ein neuer Kommentar ausgeführt wird. Eine zusätzliche (aber derzeit unimplementierte) Überprüfung wäre, sie erst nach dem zu aktivieren comment_max_links Option wurde von gelesen von get_option()(das pre_option_comment_max_links-Hook), aber wie im Moment habe ich es bisher nicht durchgeführt.

Das SourceCode kann online in TRAC angesehen werden.

Ich werde John John die Antwort geben, selbst ich habe seinen Vorschlag nicht ausgewählt, da er hier zuerst das gleiche Prinzip veröffentlichte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top