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



我在这里自定义了注册表,但这个钩子执行了两次。

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
    }

我两次得到相同的表单区域。如何解决此问题?

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

尝试在register_form钩子上列出所有回调(有关方法,请参阅此 SO 答案(。您的方法有可能被钩住两次,从而复制标记。如果是这种情况,请考虑使用依赖注入容器来避免此类问题(以及许多其他 + 其他好处(。

最新更新