it-swarm.cn

注释中的外部链接数 - 审核选项

我刚刚运行了一个问题来正确使用我的博客上的外部计数(意味着没有相关或绝对链接到我自己的博客)链接评论审核计数选项。

标记为如果队列中包含[您的号码]或更多链接,请在队列中保留评论。 (评论垃圾邮件的一个共同特征是大量的超链接。)在设置 - > Wordpress后端的讨论中。截图:

alt text

我知道目前它计算所有链接墨水。链接到博客和其他评论(在这里报告: #14681 )但我无法想象没有插件或黑客已经可用正确地将计数更正为外部链接。

所以我的问题是:是否有一个插件/黑客使Wordpress正确计算其评论中的外部链接的审核选项?

3
hakre

哈哈,我其实想办法做到这一点。作为一个插件,这应该工作。

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

我应该补充一点,我没有以任何方式测试过这个。但它理论上应该有效。

1
John P Bloch

我现在写了一个 完整的插件 为此提供了基本的链接计数界面,用于使用wordpress 3.0添加注释。除了John提出的内容之外,我还根据追踪添加注释所触发的钩子进行了一些更改/添加,因为我想在实际添加新注释时执行此操作。

因此我确实选择了comment_text而不是pre_comment_content钩子。其余部分基本相同,但添加了一些健全性检查,以便只执行一次并仅添加新注释。另一个(但目前未实现的)检查是在get_option()comment_max_links- hook)读取pre_option_comment_max_links选项之后才启用它,但是到目前为止它已通过测试,到目前为止我还没有完成。

源代码可以在trac中在线查看

我会给约翰答案,即使我没有选择他的建议,因为他先在这里发布了同样的原则。

1
hakre