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


ตามปกติเรามักจะแก้ชื่อ /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 เป็นของเรา

Credit: How to redirect every login page to my custom login page

Close Menu