สวัสดีครับวันนี้ผมจะมาสอนการทำ Redirect Login ของ wordpress เป็น URL ที่เรากำหนด เมื่อต้องการเข้าสู่ระบบหรือ สมัครสมาชิก โดยปกติค่า Default ของ wordpress จะเข้ามาที่ https://www.ชื่อเว็บไซต์.com/wp-login.php แต่เมื่อเราต้องการจะกำหนดหน้าอื่นล่ะ เราจะทำยังไง เราต้องการเป็นหน้าที่เรา Design เป็นหน้าเข้าสู่ระบบ และสมัครสมาชิก ขอเว็บไซต์เรา เราจะต้องทำการ Redirect Login อย่างไร
วิธีการ
การใช้งานก็ง่ายมากครับ ที่ผมจะมาบอกโดยไม่ได้ใช้ Plugin แต่ผมจะใช้การเพิมคำสั่งโค๊ดใน Function Theme ขั้นตอนแรกให้ดำเนินการ Copy โค๊ดชุดนี้ ไป ใส่ใน function.php ใน Theme Folder ของ WordPress โดนไป Paste ต่อท้ายคำสั่งของ Theme Function ที่มีอยู่แล้ว เพื่อป้องกันการเกิดปัญหา ถ้าไปวางผิดตำแหน่ง ขั้นตอนที่สอง บรรทัด wp_redirect ให้ทำการใส่ URL หน้า Login ที่เราสร้างไว้ เพื่อ เมื่อมีการเรียกเข้า wp-login.php wp-admin หรือ หน้าอื่นๆ ที่ต้องการที่จะต้องเข้าสู่ระบบ ระบบก็จะทำการ Redirect URL ไป ยังหน้า ที่เรากำหนด URL ไว้
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('https://www.ชื่อเว็บไซต์.com/login'); // or wp_redirect(home_url('/login')); exit(); } } add_action('init','possibly_redirect');
หลังจากที่ทำการใส่ โค๊ด ถูกต้องให้ทำการลองทดสอบเรียก URL https://www.ชื่อเว็บไซต์.com/wp-login.php ว่าเมื่อมีการเข้า wp-login.php แล้วเว็บไซต์ Redirect URL ไปที่เราใส่ไว้หรือป่าว ถ้ายังไม่เปลี่ยนแต่คิดว่าใส่ URL ถูกต้องแน่นอน ให้ทำการ Clear Browser Cache ดูครับผม สำหรับใครที่เป็นมือใหม่ยังไม่เข้าใจว่าใส่ตรงไหน ลองคอมเม้นไว้ได้เลยครับ หรือทักมาถามใน Facebook FanPage ก็ได้ครับผม