การ redirect หน้าล็อกอินของ WordPress

การ redirect หน้าล็อกอินของ WordPress

  • Post Category:Developer
Edit

ตามปกติเรามักจะแก้ชื่อ /wp-admin ตอนล็อกอินให้เป็นชื่ออื่นเพื่อลดอัตราการ hack จาก robot ซึ่งถ้าเราเปลี่ยนเป็น /login หรือชื่อธรรมดาอะไรก็ตามก็มักไม่ค่อยช่วยเท่าไหร่ จุดประสงค์ในการเปลี่ยนมักจะเป็นเพราะเราไม่ต้องการให้ขึ้นหน้าล็อกอินของ WordPress ดังนั้นหน้า /login ก็ต้องเป็นหน้าล็อกอินตามที่เราออกแบบไว้ ซึ่งก็คือกระบวนการ redirect

ปลั๊กอินระบบสมาชิกบางตัวจะ redirect ให้เราโดยอัตโนมัติเช่น Ultimate membership แต่บางตัวไม่ ซึ่งเว็บไซต์ที่มีระบบสมาชิกควรจะทำการ redirect ซึ่งสามารถทำได้โดยการเพิ่ม code ต่อไปนี้ลงใน functions.php

function possibly_redirect() { 
    global $pagenow; 
    if( 'wp-login.php' == $pagenow ) {
       if ( isset( $_POST['wp-submit'] ) || 
           // in case of LOGIN 
          ( isset($_GET['action']) && 
                  $_GET['action']=='logout') || 
           // in case of LOGOUT 
          ( isset($_GET['checkemail']) && 
                  $_GET['checkemail']=='confirm') || 
           // in case of LOST PASSWORD 
          ( isset($_GET['checkemail']) && 
                  $_GET['checkemail']=='registered') ) 
          return; 
       // in case of REGISTER
       else 
          wp_redirect('http://yourweb.com/login/'); 
       // or 
       wp_redirect(home_url('/login')); 
       exit(); 
    } 
} 

add_action('init', 'possibly_redirect');

บรรทัดที่ 8 แก้ url เป็นของเรา