我在这里定制了注册表单,但是这个钩子正在执行两次。
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
}
我两次获得相同的表格区域。我该如何解决这个问题?
答案 0 :(得分:0)
代码似乎很好,我建议检查并确保您的类在运行时只实例化一次。
尝试列出register_form
挂钩(see this SO answer上的所有回调,了解相关方法)。您的方法有可能被钩住两次,从而重复标记。如果是这种情况,请考虑使用Dependency Injection Container来避免此类问题(以及许多其他问题+其他好处)。