首页 问答 正文

如何在WordPress中设置自定义登录表格?

注册会员 / 悠然自学 / 2023-06-11/ 浏览 82 次

WordPress中设置自定义登录表格可以通过创建一个自定义登录表格的模板,然后在主题的functions.php中添加代码实现。

以下是实现自定义登录表格的步骤:

  1. 创建自定义登录表格的模板。在主题目录下创建一个新文件夹,命名为“templates”,然后在该文件夹下新建一个名为“login.php”的文件。在该文件中,使用以下代码创建自定义登录表格的HTML结构:
<form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">
    <p>
        <label for="user_login"><?php _e( 'Username or Email Address', 'textdomain' ); ?></label>
        <input type="text" name="log" id="user_login" class="input" value="<?php echo esc_attr( $user_login ); ?>" size="20" />
    </p>
    <p>
        <label for="user_pass"><?php _e( 'Password', 'textdomain' ); ?></label>
        <input type="password" name="pwd" id="user_pass" class="input" value="" size="20" />
    </p>
    <p>
        <?php wp_nonce_field( 'wp-login' ); ?>
        <input type="submit" name="wp-submit" id="wp-submit" value="<?php _e( 'Log In', 'textdomain' ); ?>" />
        <input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" />
    </p>
</form> 

在上述代码中,我们使用了WordPress的转义函数esc_url()和esc_attr()来转义输出,保证了安全性。

  1. 在主题的functions.php中添加以下代码,将创建的模板文件作为登录页面的模板:
function custom_login_page_template( $template ) {
    if ( is_page( 'login' ) ) { // 检查页面是否为登录页面
        $new_template = locate_template( array( 'templates/login.php' ) );
        if ( ! empty( $new_template ) ) {
            return $new_template;
        }
    }
    return $template;
}
add_filter( 'page_template', 'custom_login_page_template' ); 

在上述代码中,我们使用WordPress的add_filter()函数将新的模板文件作为登录页面的模板。

  1. 创建一个新的页面,命名为“Login”(或者您喜欢的其他名称),在页面模板中选择“Default Template”,然后将页面的链接添加到主菜单中。

现在,访问您的WordPress网站上的登录页面,请检查您是否能够看到您所创建的自定义登录表格。

注意:除非您确信自己知道操作的风险,否则请勿修改如此关键的功能,如WordPress的登录表格。最好的方法是使用现有的插件或主题,这些插件和主题已经为您提供了所需的自定义功能,而不需要您进行编程或修改现有的功能。

大家谈论
    我的见解