评论表单到底应该如何工作呢?

时间:2012-09-24 作者:bytejunkie

接受其他人的代码,并试图清楚地了解注释表单应该如何工作。它们被用来作为某人参观会场的反馈,所以不像普通的wordpress安装那样作为对帖子的评论。

评论表单看起来很定制,但我认为它相当标准,而且它肯定使用了标准的wp评论帖子。php页面将它们添加到db。

            <form action="<?php echo get_option(\'siteurl\'); ?>/wp-comments-post.php" method="post" name="commentform" id="commentform">
                <div class="left-column">
                <?php if ( is_user_logged_in() ) : ?>

                Logged in as <a href="<?php echo get_option(\'siteurl\'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="Log out of this account">Log out &raquo;</a>

                <?php else : ?>

                <input value="Name" type="text" name="author" id="author" value="<?php echo esc_attr($comment_author); ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required=\'true\'"; ?> />
                <input value="Email Address" type="text" name="email" id="email" value="<?php echo esc_attr($comment_author_email); ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required=\'true\'"; ?> />
                <input style="display:none" type="text" name="url" id="url" value="<?php echo esc_attr($comment_author_url); ?>" size="22" tabindex="3" />

                <?php endif; ?>
                </div>

                <div class="right-column">
                    <label style="font-size:13px; margin-bottom:8px; float:left">Comment :</label>
                    <textarea style="float:left" name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea>
                    <a class="form-submit" href="javascript:document.commentform.submit();" value="Submit"><span class="button-left"></span><span class="button-middle">Submit</span><span class="button-right"></span></a>
                    <?php comment_id_fields(); ?>
                    <?php do_action(\'comment_form\', $post->ID); ?>
                    <input type="hidden" name="comment_post_ID" value="<?php echo $post->ID; ?>" />
                </div>
            </form>
所以用户提交一条评论,点击评论帖子。php页面,然后将用户重定向到新闻项目。

这是我不明白的最后一点,感觉不对。我原以为它会返回到提交页面,并显示“感谢提交…”消息

我知道可以通过修改wp评论文章最后3行中的$location var来改变重定向。php页面。

$location = empty($_POST[\'redirect_to\']) ? get_comment_link($comment_id) : $_POST[\'redirect_to\'] . \'#comment-\' . $comment_id;
$location = apply_filters(\'comment_post_redirect\', $location, $comment);

wp_safe_redirect( $location );[/code]
但问题是,你在帖子中丢失了信息,而对提交邮件的感谢却从未出现。这也感觉像是一次劫机。

那么,怎样才能让它正常工作呢?是不是用正确的重定向变量加载注释表单,然后以通常的方式(通过在表单中)将其放入POST?

如果我错过了一些关于如何做到这一点而不必重新发明轮子的显而易见的文章,请告诉我。

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

如果您想在用户提交评论后将其重定向到其他地方,那么您所要做的就是在评论表单中包含一个隐藏的输入,名称为“redirect\\u to”,以及要将其重定向到的URL的值。您发布的代码行直接显示了这一点。无需破解核心代码。

结束