wake-up-neo.com

Das Feld "Website" aus Kommentaren und Antworten entfernen?

Um gegen Spam-Kommentare vorzugehen, möchte ich das Feld "Website" im Abschnitt "Hinterlasse eine Antwort" für Seiten- und Site-Kommentare ausblenden oder entfernen.

Ich habe keine Lust, die Platzierung anderer Seiten zu erhöhen, indem sie ihre URLs in die Kommentare meiner Website einbetten. Dies scheint das zu sein, was 99% der Kommentare auf meiner Website tun möchten.

Ich verwende das Thema Zehnundzwanzig, wenn dies in der Antwort einen Unterschied macht.

Vielen Dank!

8
cpuguru

Erstelle eine Datei in wp-content/plugins/ mit diesem Code:

<?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' );

Normalerweise würde ich sagen, dass es in die Datei functions.php Ihres Themas eingefügt wird, aber ich würde dies nicht für ein Thema empfehlen, das wie Twenty Ten aktualisiert werden könnte. Auf diese Weise können Sie diese Funktionalität als Plugin hinzufügen, das deaktiviert werden kann.

13
John P Bloch

Keine perfekte Lösung, die anderen Lösungen sind in Ordnung

Anstatt PHP zu ändern, Kommentare zu bilden, wie auch immer es nur ein Eingabefeld ist, was ist da, wenn es geladen und versteckt ist, anstatt if Anweisungen oder rewrite Kommentare zu schreiben

verstecken Sie einfach das URL-Feld

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

Abgesehen von der guten Antwort von John verwende ich eine einfachere Lösung, mit der ich mehr Kontrolle über das Kommentarformular und seine Felder habe.

Standardmäßig kann der comments.php Ihres Themas ( Twenty Eleven's, zum Beispiel ) ungefähr so ​​aussehen - <?php comment_form(); ?>

Jetzt ist die Verwendung von <?php comment_form(); ?> dieselbe wie:

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

Der einzige Unterschied, AFAIK, ist, dass die längere Version mehr Flexibilität bietet. Wie in Ihrem Fall möchten Sie das Website-Feld nicht anzeigen. Sie entfernen also einfach den Parameter url im Array fields und das Endergebnis lautet wie folgt:

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

... was du brauchst.

Empfohlene Lektüre: WordPress Codex Funktionsreferenz/comment_form

Quelldatei: (Amtsleitungsversion - aktuellste) http://core.svn.wordpress.org/trunk/wp-includes/comment-template.php

0
its_me

Das Entfernen des Website-Feldes aus dem Kommentarformular ist ganz einfach. Unten ist der Code mit nur wenigen Zeilen:

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

Quelle: Wie entferne ich das Website-Feld aus dem WordPress-Kommentar?