it-swarm.dev

Odstranění pole "Webové stránky" z komentářů a odpovědí?

Ve snaze bojovat proti spamu komentářů bych chtěl/skrýt "Web" pole z "Leave a Reply" sekce pro komentáře stránek a stránek.

Nemám touhu zvýšit hodnocení ostatních stránek tím, že jim vloží své adresy URL do mých stránek komentáře, což se zdá být to, co 99% komentářů na mých stránkách chtějí dělat.

Používám téma Twenty Ten, pokud to dělá rozdíl v odpovědi.

Dík!

8
cpuguru

Vytvořte soubor v wp-content/plugins/ s tímto kódem:

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

Normálně bych řekl, aby to dal do vašeho theme.php souboru, ale nedoporučoval bych to dělat pro téma, které by mohlo aktualizovat jako Twenty Ten. Tímto způsobem budete moci přidat tuto funkci jako plugin, který lze zakázat.

13
John P Bloch

Není to dokonalé řešení, ostatní řešení jsou v pořádku

Namísto úpravy PHP, komentářů, jakýchkoli je to jen jedno vstupní pole, co je tam, pokud je načteno a skryto, místo psaní if prohlášení nebo rewrite formuláře komentářů

jednoduše skryjte pole URL

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

Kromě dobré odpovědi od Johna používám přímější řešení, které mi umožňuje větší kontrolu nad komentářovým formulářem a jeho poli.

Ve výchozím nastavení může mít comments.php ( například Twenty Eleven ) například toto téma - <?php comment_form(); ?>

Nyní je použití <?php comment_form(); ?> stejné jako:

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

Jediný rozdíl, AFAIK, je, že delší verze vám dává větší flexibilitu. Stejně jako ve vašem případě nechcete zobrazovat pole webových stránek. Takže jednoduše odstraníte parametr url v poli fields a konečný výsledek je tento:

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

... což je to, co potřebujete.

Doporučené čtení: WordPress Codex Function Reference/comment_form

Zdrojový soubor: (verze trunk - nejaktuálnější) http://core.svn.wordpress.org/trunk/wp-includes/comment-template.php

0
its_me

Odstranění pole webové stránky z formuláře komentářů je poměrně snadné. Níže je uveden kód s několika řádky:

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

Zdroj: Jak odstranit webovou stránku z WordPress komentáře?