質問

私は、私のブログの外部(自分のブログへの相対的または絶対的なリンクがないことを意味する)のカウントを適切に使用するために問題を駆け抜けました。 コメントモデレート カウントオプション。

ラベルが付けられています ここに番号]以上のリンクが含まれている場合は、キューにコメントを保持します。 (コメントスパムの一般的な特徴は、多数のハイパーリンクです。) 設定] - > WordPressバックエンドでのディスカッション。スクリーンショット:

alt text

現在、すべてのリンクINKLをカウントしていることを知っています。ブログやその他のコメントへのリンク(ここで報告してください: #14681)しかし、カウントを外部リンクのみに適切に修正するプラグインまたはハックが既に利用可能であるとは想像できません。

私の質問は、WordPressがモデレートオプションのコメントで外部リンクのみを適切にカウントするプラグイン /ハックはありますか?

役に立ちましたか?

解決

ハハ、私は実際にこれを行う方法を見つけました。プラグインとして、これは機能するはずです。

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

これをテストしていないことを付け加える必要があります。しかし、理論的には機能するはずです。

他のヒント

私は今書いた 完全なプラグイン これについては、WordPress 3.0にコメントを追加するための基本的なリンクカウントインターフェイスを提供します。ジョンが提案したものに加えて、コメントを追加することでトリガーされたフックをトレースすることに基づいて、新しいコメントが実際に追加されたときにのみ実行されたいと思っています。

したがって、私はそれを選びました comment_text の代わりに pre_comment_content 針。残りは基本的に同じですが、一部の正気チェックが追加されたため、新しいコメントのみを追加するだけで実行されます。追加の(ただし現在実装されていない)チェックは、それを有効にすることです。 comment_max_links オプションが読み取られています get_option()pre_option_comment_max_links-hook)、しかし、現時点ではこれがテストに合格していたので、私はそれを今まで行っていません。

SourcecodeはTRACでオンラインで表示できます.

彼が最初に同じ原則を投稿したので、私は彼の提案を選択しなかったジョンに答えを与えます。

ライセンス: CC-BY-SA帰属
所属していません wordpress.stackexchange
scroll top