如何使备注文本字段不是必填项?

时间:2013-06-01 作者:Cid Ubaid

我的要求有点不同,我可以用过滤器隐藏电子邮件和网站字段,但我想知道的是,当我发表评论时,有没有一种方法可以使评论文本不需要,而没有注释文本区域填充了它的给我错误,需要评论,请指导我如何使评论文本不需要。

       add_action(\'pre_comment_on_post\', \'dump_comment\');
       function dump_comment($post_id, $author=null,     $email=null) {
       $comcnt = $cmntcount = comments_number( \'#0\', \'#1\', \'#%\' );
       $comment = ( isset($_POST[\'comment\']) ) ? trim($_POST[\'comment\']) : null;
       if (!$comment) {
       $_POST[\'comment\'] = \'Design\' . $comcnt;

        }
        }
更新和工作代码。

      add_action(\'pre_comment_on_post\', \'dump_comment\');
      function dump_comment($post_id, $author=null, $email=null) {
       $comment = ( isset($_POST[\'comment\']) ) ? trim($_POST[\'comment\']) : null;
       if (!$comment) {
       $_POST[\'comment\'] = \'Design #\' . get_comments_number();

       }
        }
使评论每次都是独一无二的。通过添加注释计数的值。

3 个回复
最合适的回答,由SO网友:fuxia 整理而成

通过将上载的图像作为HTML添加到评论文本中,可以轻松绕过空评论检查:

add_action( \'pre_comment_on_post\', \'allow_empty_comment_text\' );

function allow_empty_comment_text( $text = \'\' )
{
    if ( ! isset ( $_POST[\'comment\'] ) or \'\' === trim( $_POST[\'comment\'] ) )
    {
        $img = \'/* Process uploaded image here, create an <img> tag. */\'    
        $_POST[\'comment\'] = \'<img>\'; // use a real img tag here
    }
}

SO网友:Pooja Guri Singh
function rei_preprocess_comment($comment_data) {
    if ($comment_data[\'comment_content\'] == \'%dummy-text%\') {
        $comment_data[\'comment_content\'] = \'\'; // replace dummy text.
    }
    return $comment_data;
}
add_filter(\'preprocess_comment\', \'rei_preprocess_comment\');
function rei_wp_footer() {
    ?>
    <script>
    jQuery(function($){
        var comment = $(\'textarea#comment\');
        comment.removeAttr(\'required\'); // remove required attribute of textarea.
        $(\'#commentform\').on(\'submit\',function(){
            if (comment.val() == \'\') {
                comment.css(\'text-indent\',\'-999px\').val(\'%dummy-text%\'); // change to dummy text.
            }
        });
    });
    </script>
    <?php
}
add_action( \'wp_footer\', \'rei_wp_footer\' );
SO网友:Pete

此功能允许用户提交评论,文本区域中无任何文本。然后,您所需要做的就是用一些display:none; css。

function rei_preprocess_comment($comment_data) {
    if ($comment_data[\'comment_content\'] == \'%dummy-text%\') {
        $comment_data[\'comment_content\'] = \'\'; // replace dummy text.
    }
    return $comment_data;
}
add_filter(\'preprocess_comment\', \'rei_preprocess_comment\');
function rei_wp_footer() {
    ?>
    <script>
    jQuery(function($){
        var comment = $(\'textarea#comment\');
        comment.removeAttr(\'required\'); // remove required attribute of textarea.
        $(\'#commentform\').on(\'submit\',function(){
            if (comment.val() == \'\') {
                comment.css(\'text-indent\',\'-999px\').val(\'%dummy-text%\'); // change to dummy text.
            }
        });
    });
    </script>
    <?php
}
add_action( \'wp_footer\', \'rei_wp_footer\' );

结束