是否从评论和回复中删除“网站”字段?

时间:2010-10-22 作者:cpuguru

为了打击评论垃圾,我想在页面和网站评论的“留下回复”部分隐藏或删除“网站”字段。

我不想让其他人在我的网站评论中嵌入他们的URL来提高页面排名,这似乎是我网站上99%的评论想要做的。

如果答案有什么不同的话,我用的是210主题。

谢谢

4 个回复
最合适的回答,由SO网友:John P Bloch 整理而成

在中创建文件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\' );
通常,我会说把它放到你的主题函数中。php文件,但对于可能更新为210的主题,我不建议这样做。通过这种方式,您可以将此功能添加为可禁用的插件。

SO网友:its_me

除了John给出的好答案外,我还使用了一种更直接的解决方案,它允许我对评论表单及其字段进行更多的控制。

默认情况下,主题的comments.php (Twenty Eleven\'s, for example) 可能有这样的东西-<?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 );
?>
。。。这就是你需要的。

Recommended Reading: WordPress Codex Function Reference / comment_form

Source File: (中继版本-最新)http://core.svn.wordpress.org/trunk/wp-includes/comment-template.php

SO网友:bhv

不是完美的解决方案,其他解决方案都可以

与其修改PHP、注释表单,还不如只修改一个输入字段,如果加载并隐藏了它,还有什么,而不是编写if 声明或rewrite 评论表

只需隐藏URL字段

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

SO网友:Faruque Ahamed Mollick

从评论表单中删除网站字段非常容易。下面是几行代码:

function cs_remove_comment_website_fields($fields) {
  unset($fields[\'url\']);
  return $fields;
}
add_filter(\'comment_form_default_fields\',\'cs_remove_comment_website_fields\');
资料来源:How to remove the website field from WordPress comment?

结束

相关推荐

Comment Spammed vs Trashed

将评论标记为垃圾邮件和将其丢弃有什么区别?