繁体   English   中英

错误/空登录后,wordpress停止重定向到wp-login.php

[英]wordpress stop redirect to wp-login.php after incorrect/empty login

我有一个简短的代码功能,可以呈现会员登录的登录表单(与我有“我的帐户”页面的普通用户登录不同),该表单可以重定向到url或当前页面。

function affiliates_login_redirect( $atts, $content = null ) {
        extract( shortcode_atts( array( 'redirect_url' => '' ), $atts ) );
        $form = '';
        if ( !is_user_logged_in() ) {
            if ( empty( $redirect_url ) ) {
                $redirect_url = get_permalink();
            }
            $form = wp_login_form( array( 'echo' => false, 'redirect' => $redirect_url ) );
        }
        return $form;
    }

它工作正常,但是,如果登录表单中有无效条目或字段保留为空,则将其重定向到wp-login.php。

我已经检查了包括http://www.markomedia.com.au/wordpress-login-widget-redirect-prevention/的选项,但是我不确定如何与我的简码功能一起使用该解决方案。 我可以将其添加到functions.php中,但值得关注的是,我还启用了woocommerce,它会在my-account页面下生成一个单独的登录表单,用于正常用户登录。

有人可以帮忙吗? 提前致谢。

get_permalink(); 将您要重定向的页面的ID通过<?php echo get_page_link(40); ?> <?php echo get_page_link(40); ?>

试试看(提供您的页面的ID)

function affiliates_login_redirect( $atts, $content = null ) {
        extract( shortcode_atts( array( 'redirect_url' => '' ), $atts ) );
        $form = '';
        if ( !is_user_logged_in() ) {
            if ( empty( $redirect_url ) ) {
                $redirect_url = echo get_page_link(40);
            }
            $form = wp_login_form( array( 'echo' => false, 'redirect' => $redirect_url ) );
        }
        return $form;
    }

将此添加到function.php中,希望对您有所帮助。

            function custom_authenticate( $user, $username, $password ) {

                if ( is_wp_error( $user ) && isset( $_SERVER[ 'HTTP_REFERER' ] ) && !strpos( $_SERVER[ 'HTTP_REFERER' ], 'wp-admin' ) && !strpos( $_SERVER[ 'HTTP_REFERER' ], 'wp-login.php' ) ) {
                  $referrer = $_SERVER[ 'HTTP_REFERER' ];
                  foreach ( $user->errors as $key => $error ) {
                     if ( in_array( $key, array( 'empty_password', 'empty_username') ) ) {
                        unset( $user->errors[ $key ] );
                        $user->errors[ 'custom_'.$key ] = $error;
                        wp_redirect( $referrer . '?login=failed' );
                     }
                  }
                }

                return $user;
            }
            add_filter('authenticate','custom_authenticate', 31, 3);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM