コメントと返信から「ウェブサイト」フィールドを削除しますか?


8

コメントスパムに対抗するために、ページとサイトのコメントの[ 返信を残す]セクションの[ ウェブサイト]フィールドを非表示にするか削除したいと思います。

自分のサイトのコメントにURLを埋め込んで他のページのランキングを上げようとは思っていません。これは、私のサイトのコメントの99%がやりたいことのようです。

答えに違いがある場合は、Twenty Tenテーマを使用しています。

ありがとう!


Akismetやキャプチャを使用しないのはなぜですか?
Raphael、

回答:


13

wp-content/plugins/次のコードでファイルを作成します。

<?php
/*
Plugin Name: Get Rid of Comment Websites
*/
function my_custom_comment_fields( $fields ){
  if(isset($fields['url']))
    unset($fields['url']);
  return $fields;
}

add_filter( 'comment_form_default_fields', 'my_custom_comment_fields' );

通常は、テーマのfunctions.phpファイルに記述しますが、Twenty Tenのように更新できるテーマの場合は、このようにすることはお勧めしません。この方法で、この機能を無効化できるプラグインとして追加できます。


これでうまくいきました-ありがとう!「remove-url-field」というフォルダーを作成し、その中に「remove-url-field.php」というファイルを作成してから、プラグインインターフェイスに表示されるプラグインをアクティブにしました。早くて簡単!
cpuguru

2
上記のような単純なプラグインの場合、フォルダーを作成する必要はありません。スタンドアロンファイルで問題なく動作します(最終的には、これはもちろん、プラグインの要件ではないことを指摘するだけです)。
t31os 2010年

これは本当に最も簡単な方法ですか?たとえば、「コメントの作成者は名前と電子メールに入力する必要があります」などのオプションが管理者にあるが、Webサイトのフィールドを非表示にしないことは奇妙に思われます。
DisgruntledGoat 2011

これについて何が複雑ですか?FTPに対応したくない場合は、プラグインリポジトリでこれを実行できるものを見つけることができると思います。
John P Bloch

1
@ MD004ファイルの最後にPHPタグを閉じる必要はありません。一部のエディターは、改行を静かにファイルの最後に追加し、応答本文の最初の部分として改行をブラウザーに送信するため、有害な場合もあります。プラグインのロードよりも後にカスタムヘッダーを送信する必要がある場合、またはXMLが正しいテキストを改行ではなくドキュメントの最初のテキストであると想定している場合、これは非常に悪くなります。
John P Bloch

0

ジョンの良い答えは別として、私はより簡単な解決策を使用します。これにより、コメントフォームとそのフィールドをより詳細に制御できます。

デフォルトでは、テーマcomments.phpたとえば、Twenty Elevenのテーマ)は次のようになります—<?php comment_form(); ?>

今、使用<?php comment_form(); ?>は同じです:

<?php
    $args = array(
        'fields' => array(
                        'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
                                        '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
                        'email'  => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
                                        '<input id="email" name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>',
                        'url'    => '<p class="comment-form-url"><label for="url">' . __( 'Website' ) . '</label>' .
                                        '<input id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></p>',
        );
    );
    comment_form( $args );
?>

唯一の違いは、私の知る限り、バージョンが長いほど柔軟性が高まるということです。あなたの場合のように、あなたはウェブサイトフィールドを表示したくないでしょう。そのため、配列のurlパラメーターを削除するだけfieldsで、最終的な結果は次のようになります。

<?php
    $args = array(
        'fields' => array(
                        'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
                                        '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
                        'email'  => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
                                        '<input id="email" name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>',
        );
    );
    comment_form( $args );
?>

...これが必要なものです。

推奨 資料WordPress Codex関数リファレンス/ comment_form

ソースファイル:(トランクバージョン—最新)http://core.svn.wordpress.org/trunk/wp-includes/comment-template.php


0

完璧なソリューションではなく、他のソリューションは問題ありません

PHPを変更する代わりに、コメントフォーム、それがどのように1つの入力フィールドであるか、それがロードされて非表示になっている場合は、ifステートメントまたはrewriteコメントフォームを作成する代わりに

単にURLフィールドを非表示にする

.comment-form-url {
    display: none;
}

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.