注册表单挂钩两次显示相同的字段

时间:2018-01-09 10:44:01

标签: php wordpress forms registration

我在这里定制了注册表单,但是这个钩子正在执行两次。

add_action( 'register_form', array( &$this, 'customize_registration_form' ) );

public function customize_registration_form(){
        $first_name = ( ! empty( $_POST['first_name'] ) ) ? trim( $_POST['first_name'] ) : '';
        $last_name = ( ! empty( $_POST['last_name'] ) ) ? trim( $_POST['last_name'] ) : '';
        ?>
        <p>
            <label for="first_name"><?php _e( 'First Name', $this->textdomain ) ?><br />
                <input type="text" name="first_name" id="first_name" class="input" value="<?php echo esc_attr( wp_unslash( $first_name ) ); ?>" size="25" /></label>
        </p>
        <p>
            <label for="last_name"><?php _e( 'Last Name', $this->textdomain ) ?><br />
                <input type="text" name="last_name" id="last_name" class="input" value="<?php echo esc_attr( wp_unslash( $last_name ) ); ?>" size="25" /></label>
        </p>
        <?php
    }

我两次获得相同的表格区域。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

代码似乎很好,我建议检查并确保您的类在运行时只实例化一次。

尝试列出register_form挂钩(see this SO answer上的所有回调,了解相关方法)。您的方法有可能被钩住两次,从而重复标记。如果是这种情况,请考虑使用Dependency Injection Container来避免此类问题(以及许多其他问题+其他好处)。