WordPress – Displaying login form in shortcode

I tried the wordpress stack but no luck so thought I’d try here…

So I am trying to display a working version of the default wordpress login form on one of my pages. There is code in the functions.php file that creates the shortcode and as far as I know it works successfully, however after submitting the form, it simply refreshes the page and doesn’t redirect to the url I am specifying…can anyone see why it might not work as it should?

Read More

This is the function I put in the functions.php file:

//Login form Shortcode
add_shortcode( 'login-form', 'my_login_form_shortcode' );
/**
 * Displays a login form.
 *
 * @since 0.1.0
 * @uses wp_login_form() Displays the login form.
 */
function my_login_form_shortcode( $atts, $content = null ) {

    $defaults = array(      "redirect"              =>  site_url( $_SERVER['REQUEST_URI'] )
                        );

        extract(shortcode_atts($defaults, $atts));
        if (!is_user_logged_in()) {
        $content = wp_login_form( array( 'echo' => false, 'redirect' => $redirect ) );
        }
    return $content;
}

I am then placing it in the desired page like so:

[login-form redirect="https://myurl.com"]

but instead of redirecting me to the right page, it is instead refreshing the page even though I am now successfully logged in…any ideas?

Related posts

1 comment

  1. You can simply add this code below

    add_action( 'login_form_middle', 'add_lost_password_link' );
    function add_lost_password_link() {
        return '<a href="/wp-login.php?action=lostpassword">Forgot Your Password?</a>';
    }
    
    if(!function_exists('vivid_login_page'))
    {
      function vivid_login_page()
      {
          $args = array(
            'echo'           => true,
            'remember'       => true,
            'redirect'       => ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'],
            'form_id'        => 'loginform',
            'id_username'    => 'user_login',
            'id_password'    => 'user_pass',
            'id_remember'    => 'rememberme',
            'id_submit'      => 'wp-submit',
            'label_username' => __( 'Username or Email Address' ),
            'label_password' => __( 'Password' ),
            'label_remember' => __( 'Remember Me' ),
            'label_log_in'   => __( 'Log In' ),
            'value_username' => '',
            'value_remember' => false
        );
        wp_login_form($args);
        add_lost_password_link();
      }
      add_shortcode('vivid-login-page', 'vivid_login_page');
    }
    

Comments are closed.