it-swarm-es.com

Número de enlaces externos en comentarios - Opción de moderación

Acabo de encontrar un problema para usar correctamente el recuento de enlaces externos (es decir, sin vínculos relativos o absolutos a mi propio blog) en mi blog para la Opción de moderación de comentarioscount.

Está etiquetado Mantenga un comentario en la cola si contiene [su número aquí] o más enlaces. (Una característica común del spam de comentarios es un gran número de hipervínculos).En Configuración -> Discusión en el Back-end de WordPress. Captura de pantalla:

alt text

Soy consciente de que actualmente cuenta con todos los enlaces de tinta. enlaces al blog y otros comentarios (informados aquí: # 14681 ) pero no puedo imaginar que no haya un complemento o hackeo ya disponible que corrige correctamente el recuento a solo enlaces externos.

Entonces, mi pregunta es: ¿hay algún complemento/truco que haga que Wordpress cuente correctamente solo los enlaces externos en los comentarios por sus Opciones de moderación?

3
hakre

Jaja, en realidad descubrí una manera de hacer esto. Como complemento, esto debería funcionar.

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

Debo añadir que no he probado de ninguna manera esto. Pero teóricamente debería funcionar.

1
John P Bloch

Ahora escribí un complemento completo para esto que ofrece la interfaz básica de conteo de enlaces para agregar comentarios con wordpress 3.0. Además de lo que John propuso, hice algunos cambios/adiciones basados ​​en el rastreo de los ganchos activados al agregar el comentario, ya que quería que esto solo se ejecutara cuando se agrega un nuevo comentario.

Por lo tanto, elegí comment_text en lugar del pre_comment_content hook. El resto es básicamente el mismo, pero se agregaron algunas comprobaciones para que solo se ejecute una vez y solo para agregar un nuevo comentario. Una verificación adicional (pero actualmente no implementada) sería habilitarla solo después de que la opción comment_max_links haya sido leída por get_option() (el pre_option_comment_max_links- hook), pero hasta el momento no pasó la prueba, no lo he hecho hasta ahora.

El código fuente se puede ver en línea en trac .

Le daré la respuesta a John aunque no elegí su sugerencia, ya que él publicó el mismo principio aquí primero.

1
hakre