为什么前面的表单-Page.php重定向到博客页面

时间:2018-04-15 作者:efirvida

我有一张表格,像这样

        <form id="property_type_form" method="post" action="">
            <div data-toggle="buttons" class="category-filters btn-group pull-left">
                <label id="property_type_all" class="btn active hvr-overline-from-center"
                       onclick="location.replace(\'<?php echo home_url( $wp->request ) ?>\')">
                    <?php _e( \'Todas\', \'irealtor\' ) ?>
                </label>
                <?php foreach ( $property_type as $type ) : ?>
                    <label for="house" id="label_<?php echo $type->slug ?>"
                           class="btn hvr-overline-from-center">
                        <input type="checkbox" id="<?php echo $type->slug ?>" value="<?php echo $type->slug ?>"
                               name="property_type" onchange="this.form.submit()"/>
                        <?php echo $type->name ?>
                    </label>
                <?php endforeach; ?>
            </div>
        </form>
在同一个文件中,我使用以下代码处理请求:

if ( isset( $_REQUEST[\'property_type\'] ) && $_REQUEST[\'property_type\'] ) {
    $args[\'tax_query\'] = array(
        array(
            \'taxonomy\' => \'property_type\',
            \'field\'    => \'slug\',
            \'terms\'    => $_REQUEST[\'property_type\'],
        )
    );
}
我还尝试以下任何一种:

action="<?php echo esc_url( $_SERVER[\'REQUEST_URI\'] ) ?>"
action="<?php echo home_url( $wp->request ) ?>"
action="<?php get_permalink();?>"
当我在任何其他页面上使用此表单时,它会按照我的意愿工作,但如果我在frontpage中使用它,表单操作会转到博客页面,我不知道为什么。有什么想法吗?

1 个回复
SO网友:Rick Hellewell

因为,默认情况下,如果不在目标中指定实际页面,它会假定您的意思是www.example.com/ , 去了www.example.com/index.php 页面,加载站点的主页,该主页是站点的首页,通常是博客页面(除非您将静态页面指定为博客的“主页”)。(简单解释…)

因此,您需要转到处理表单的页面。如果是它本身,则需要在“action”参数中使用它:

action="<?php get_permalink();?>"
它将返回当前页面的链接,我假设该页面具有表单的处理代码。

Correction

您需要使用the_permalink(), 不get_permalink(). 有关原因,请参见here.

结束

相关推荐

GravityForms to Salesforce API,离开公司的人的问题

我在WordPress网站上使用GravityForms,并有GravityForms to Salesforce API插件,该插件将填写表单的人员添加为Salesforce中的潜在客户。它工作得很好,除非人们没有输入公司名称。如果他们不进入公司,有没有办法将其默认为全名?这是我的密码。我添加了警报框来帮助调试,但它们甚至不运行!add_filter(\'gform_after_submission_1\', \'create_company_full_name\', 10, 4); func