web-dev-qa-db-ja.com

コメントと返信から[Webサイト]フィールドを削除する

コメントスパムと闘うために、ページとサイトのコメントの "Leave a Reply" セクションから "Website" フィールドを非表示にするか削除します。

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

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

ありがとうございます。

8
cpuguru

このコードで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のように更新することができるテーマのためにそれをすることを勧めません。この方法で無効にできるプラグインとしてこの機能を追加することができます。

13
John P Bloch

完全な解決策ではなく、他の解決策でも構いません

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

uRLフィールドを非表示にするだけです

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

Johnの良い答えとは別に、私はより直接的な解決策を使っています。それは私がコメントフォームとそのフィールドをもっとコントロールできるようにします。

デフォルトでは、あなたのテーマのcomments.phpTwenty 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 );
?>

唯一の違いは、AFAIKです。長いバージョンほど柔軟性があります。あなたの場合のように、あなたはウェブサイトフィールドを見せたくありません。そのため、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コーデックス関数リファレンス/ comment_form

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

0
its_me

コメントフォームからWebサイトフィールドを削除するのはとても簡単です。下記のコードは、ほんの数行です。

function cs_remove_comment_website_fields($fields) {
  unset($fields['url']);
  return $fields;
}
add_filter('comment_form_default_fields','cs_remove_comment_website_fields');

ソース: WordPressのコメントからウェブサイトのフィールドを削除する方法?