在主页上执行发布操作将转到发布页面

时间:2014-02-24 作者:WolfieZero

在我网站的每一页上,我都会收到一份联系表,它会向相应的地址发送一封电子邮件。在这个网站上,我还将首页显示设置为静态页面。

联系人表单基本上会发布到self,如果成功,会将用户带到新页面,否则会定位到联系人表单并显示错误。但在主页上,无论是何种类型的POST请求,它都会将页面设置为posts页面。对我来说似乎很奇怪,因为它可能是一个空的帖子请求,仍然会将用户带回帖子页面,但URL不会更改。只有当您在主页上发布帖子时,才会出现这种情况,所有其他页面都会按预期工作。

有什么想法吗?

add_action( \'wp_head\', \'process_contact_form\' );
function process_contact_form() {

    if( isset( $_POST[\'submit\'] ) && $_POST[\'submit\'] ) {
        echo\'test\';
    }

}

add_shortcode( \'mini-contact\', \'get_mini_contact\' );
function get_mini_contact( $atts = array() ) {

    extract(shortcode_atts(array(
        \'title\'   => \'Contact US\',
        \'button\'  => \'Submit\',
        \'label\'   => \'Message us\',
        \'subject\' => \'Message\'
    ), $atts));

    $html  = \'\';

    $html .= \'<section id="quick-contact-form" class="home-solution">\';
        $html .= \'<div class="container">\';
            $html .= \'<header>\';
                $html .= \'<h2 class="aligncenter  type--bottom-space">\' . $title . \'</h2>\';
            $html .= \'</header>\';

            $html .= \'
                <form class="contact-form" method="post" action="">
                    <div class="row">
                        <div class="medium-5  columns">
                            <label>Name</label>
                            <input type="text" name="name" class="form-contact__text" />
                        </div>
                        <div class="medium-5  columns">
                            <label>E-mail</label>
                            <input type="text" name="email" class="form-contact__text" />
                        </div>
                    </div>
                    <div class="row">
                        <div class="medium-10  columns">
                            <label>Share your business problem today</label>
                            <textarea name="comment" rows="20" class="form-contact__textarea"></textarea>
                        </div>
                    </div>
                    <div class="row">
                        <div class="medium-10  columns">
                            <input type="submit" name="submit" value="\' . $button . \'" class="button  expand">
                        </div>
                    </div>
                    <input type="hidden" name="subject" value="\' . $subject . \'">
                </form>
            \';

        $html .= \'</div>\';
    $html .= \'</section>\';

    return $html;

}

2 个回复
最合适的回答,由SO网友:Steven Jones 整理而成

发布表单时,如果使用“name”作为输入名称,则提交时似乎存在问题。

尝试更改:

<input type="text" name="name" class="form-contact__text" />
收件人:

<input type="text" name="the_name" class="form-contact__text" />
此外,最好给提交按钮一个更独特的名称,以防它与任何插件/主题冲突,然后在process_contact_form() 作用

SO网友:Fengist

这可能有点旧,但这篇文章帮助我找到了一个类似的问题。如果您有一个输入名称=“search”,它也会加载一个帖子页面,而不是重新加载静态首页。

结束

相关推荐

Link Forms on Wordpress

在我们的Wordpress网站上,我们有一个由一系列(单选按钮式)问题组成的表单。根据用户对特定问题的回答,我们希望向用户显示不同的表单。也就是说,我们希望将多个表单链接到一个主表单。这可能吗?如果是这样的话,有人能解释一下如何做到这一点,或者给我指一些可能有用的资源吗?我对Wordpress很陌生。