Question

Je viens couru un problème à utiliser correctement le nombre d'extérieur (ce qui signifie aucun lien absolu ou relatif à mon propre blog) liens sur mon blog pour le compte Modération des commentaires .

Il est étiqueté Tenir un commentaire dans la file d'attente si elle contient [votre numéro ici] ou plus de liens. (Une caractéristique commune de spam de commentaires est un grand nombre de liens hypertextes.) sur Paramètres -> Discussion dans le back-end Wordpress. Capture d'écran:

text alt

Je suis conscient que ça compte actuellement tous les liens inkl. des liens vers le blog et d'autres commentaires (rapporté ici: # 14681 ) mais je peux « t imaginer qu'il n'y a pas un plug-in ou pirater déjà qui corrige correctement le nombre de liens externes uniquement.

Alors ma question est: Y at-il un plugin / hack qui fait Wordpress compte bien que les liens externes dans les commentaires pour ses options de Modération

?
Était-ce utile?

La solution

Haha, en fait je pensais trouver un moyen de le faire. En tant que plug-in, cela devrait fonctionner.

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

Je dois ajouter que je n'ai pas testé en aucune façon cela. Mais il devrait théoriquement travail.

Autres conseils

Je maintenant écrit un plugin complet pour ce qui offre le lien de base Interface de comptage pour ajouter des commentaires avec WordPress 3.0. En plus de ce que John a proposé que je fait quelques changements / ajouts basés sur le traçage des crochets déclenchés en ajoutant le commentaire que je voulais cela n'exécuté lorsqu'un nouveau commentaire est effectivement ajouté.

J'ai donc choisi le fait comment_text au lieu du crochet pre_comment_content. Le reste est essentiellement la même, mais certains contrôles ont été ajoutés afin qu'il ne get exécutées une fois sur l'ajout d'un nouveau commentaire seulement. Un montant supplémentaire (mais pas encore implémenté) chèque serait de permettre seulement après l'option comment_max_links a été lu par get_option() (le pre_option_comment_max_links-crochet), mais pour le moment cela ne test passe, je n'ai pas fait jusqu'à présent.

Le sourcecode peut être consulté en ligne trac.

Je vais donner la réponse à John, même je ne l'ai pas choisi sa suggestion comme il a affiché le même principe ici d'abord.

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top