วิธีเปลี่ยนเส้นทางผู้ใช้หากไม่ได้ลงชื่อเข้าใช้ WordPress » Page Redirect
เผยแพร่แล้ว: 2022-01-02ในโพสต์ที่แล้ว ฉันสาธิตวิธีการตรวจสอบว่าผู้ใช้เข้าสู่ระบบใน WordPress หรือไม่ สาเหตุทั่วไปประการหนึ่งที่คุณอาจต้องการตรวจสอบว่าผู้ใช้ WordPress เข้าสู่ระบบหรือไม่ คือการแสดงหน้าต่างๆ ตามสถานะการเข้าสู่ระบบของผู้ใช้ WordPress หากคุณต้องการเปลี่ยนเส้นทางผู้ใช้หากไม่ได้ลงชื่อเข้าใช้ WordPress คุณสามารถทำได้โดยเพิ่มข้อมูลโค้ดในไฟล์ functions.php ของคุณ ดังที่คุณจะเห็นในบทแนะนำสั้นๆ นี้
ทำไมต้องเปลี่ยนเส้นทางผู้ใช้ใน WordPress?
การเปลี่ยนเส้นทางผู้ใช้เป็นข้อกำหนดที่สำคัญสำหรับไซต์ WordPress ส่วนใหญ่ มีหลายครั้งที่คุณอาจต้องการเปลี่ยนเส้นทางผู้ใช้จากหน้าหนึ่งไปยังอีกหน้าหนึ่ง ตัวอย่างเช่น คุณสามารถเปลี่ยนเส้นทางผู้ใช้ WooCommerce หลังจากชำระเงิน หรือคุณสามารถเปลี่ยนเส้นทางผู้ใช้หลังจากลงทะเบียนหรือเปลี่ยนเส้นทางเข้าสู่เว็บไซต์
หากต้องการเปลี่ยนเส้นทางหากไม่ได้ลงชื่อเข้าใช้ WordPress เป็นหนึ่งในการเปลี่ยนเส้นทางที่พบบ่อยที่สุด แม้ว่าจะมีปลั๊กอินที่สามารถช่วยจัดการการเปลี่ยนเส้นทางใน WordPress ได้ แต่การเพิ่มข้อมูลโค้ดขนาดเล็กที่ช่วยแก้ปัญหานี้เป็นทางออกที่ดีกว่าการใช้ปลั๊กอินของบุคคลที่สาม
ในบทช่วยสอนนี้ ฉันจะสาธิตวิธีเพิ่มข้อมูลโค้ดในธีมหรือปลั๊กอินของคุณที่สร้างการเปลี่ยนเส้นทางสำหรับผู้ใช้ที่ไม่ได้เข้าสู่ระบบในหน้าที่คุณเลือก
ขั้นตอนในการเปลี่ยนเส้นทางหากไม่ได้ลงชื่อเข้าใช้ WordPress
หากต้องการใช้การเปลี่ยนเส้นทางหากไม่ได้เข้าสู่ระบบใน WordPress คุณควรทำตามขั้นตอนต่อไปนี้:
- ลงชื่อเข้าใช้ไซต์ WordPress ของคุณ และไปที่ตัวแก้ไขธีมภายใต้เมนูลักษณะที่ปรากฏบนเมนูแดชบอร์ดหลัก
- เปิดไฟล์ functions.php ของธีม WordPress ที่ใช้งานอยู่ คุณยังสามารถใช้ CPanel หรือ FTP เพื่อเข้าถึงไฟล์ functions.php ของธีมที่ใช้งานอยู่ มันตั้งอยู่บนเส้นทางนี้ -
wp-root-installation/wp-content/themes/active-theme/functions.php - สร้าง action hook ที่เกี่ยวกับ admin initialization hook –
admin_init
เช่นadd_action('init', 'redirect_if_not_logged_in')
เบ็ดนี้มีฟังก์ชันเรียกกลับซึ่งจะมีตรรกะในการตรวจสอบว่าผู้ใช้เข้าสู่ระบบใน WordPress หรือไม่ และหากไม่ได้เข้าสู่ระบบ ผู้ใช้จะถูกเปลี่ยนเส้นทางไปยังหน้าที่เราต้องการ - สร้างฟังก์ชันเรียกกลับตามที่เราได้กล่าวไว้ข้างต้น และเพิ่มโค้ดตามนั้น
- บันทึกการเปลี่ยนแปลงและไปที่ส่วนหน้าเพื่อทดสอบว่าผู้ใช้ที่ไม่ได้เข้าสู่ระบบถูกเปลี่ยนเส้นทางไปยังหน้าที่คุณเพิ่มในโค้ดหรือไม่
ให้เราสาธิตวิธีการเพิ่มการเปลี่ยนเส้นทางหากผู้ใช้ไม่ได้เข้าสู่ระบบใน WordPress ฉันจะใช้ธีม WordPress เริ่มต้นในการติดตั้ง localhost แต่สิ่งนี้สามารถใช้ได้กับไซต์อื่นๆ ทั้งหมด โดยไม่คำนึงถึงธีมและสภาพแวดล้อมการโฮสต์
โค้ดสำหรับเพิ่มการเปลี่ยนเส้นทางอาจใช้เงื่อนไขอื่น เช่นในกรณีส่วนใหญ่เมื่อคุณต้องการจำกัดเนื้อหาจากผู้ใช้ที่ไม่ได้เข้าสู่ระบบ คุณจะต้องตรวจสอบสองเงื่อนไข:
- หากผู้ใช้เข้าสู่ระบบ
- หากผู้ใช้อยู่ในหน้าที่คุณมีเนื้อหาที่ถูกจำกัด
เมื่อตรงตามเงื่อนไขเหล่านี้ คุณควรใช้ฟังก์ชัน wp_redirect() เพื่อเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าที่คุณเลือก
ฟังก์ชัน WP : wp_redirect()
นี่คือฟังก์ชันการเปลี่ยนเส้นทางของ WordPress ที่สามารถใช้ในธีมและปลั๊กอินเพื่อเปลี่ยนเส้นทางผู้ใช้ นิพจน์ทั่วไปของฟังก์ชันนี้มีดังต่อไปนี้:
wp_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )
ดังที่คุณเห็นฟังก์ชั่นมีสามพารามิเตอร์ดังต่อไปนี้:
พารามิเตอร์ | คำอธิบาย |
$location | นี่คือ URL ที่คุณต้องการเปลี่ยนเส้นทางผู้ใช้ เมื่อคุณใช้ฟังก์ชันนี้เมื่อผู้ใช้ไม่ได้เข้าสู่ระบบ คุณจะต้องระบุ URL ไปยังหน้าที่เราจะเปลี่ยนเส้นทางผู้ใช้ตามที่คุณจะเห็นในตัวอย่างโค้ด |
$status | นี่เป็นพารามิเตอร์ทางเลือก และคุณอาจไม่เห็นว่ามีการใช้บ่อย แต่เป็นรหัสสถานะการตอบสนอง HTTP ที่จะใช้ ค่าเริ่มต้น '302' และคุณสามารถใช้ 301 สำหรับการเปลี่ยนเส้นทางแบบถาวรได้ โปรดใช้ความระมัดระวังเมื่อคุณใช้พารามิเตอร์นี้กับตัวเลือกการเปลี่ยนเส้นทาง 301 |
$x_redirect_by | นี่เป็นเพียงแอปพลิเคชันที่ใช้การเปลี่ยนเส้นทางและแทบจะไม่เปลี่ยนค่าเริ่มต้นซึ่งก็คือ WordPress |
การดำเนินการเปลี่ยนเส้นทางเทมเพลตหากผู้ใช้ไม่ได้เข้าสู่ระบบ
หากต้องการเปลี่ยนเส้นทางผู้ใช้ที่ไม่ได้เข้าสู่ระบบใน WordPress คุณสามารถใช้ฟังก์ชัน wp_redirect กับการตรวจสอบตามเงื่อนไขว่าผู้ใช้ลงชื่อเข้าใช้ดังนี้:
add_action( 'template_redirect', 'redirect_if_user_not_logged_in' ); ฟังก์ชัน redirect_if_user_not_logged_in() { if ( is_page('slug || ID') && ! is_user_logged_in() ) { //example can be is_page(23) โดยที่ 23 คือ ID ของเพจ wp_redirect( 'http://your-redirect-page-here'); exit;// อย่าลืมทางออกนี้ เพราะมันสำคัญมากสำหรับ wp_redirect() ที่จะต้องมี exit / die } }
แทนที่กระสุนของการตรวจสอบตามเงื่อนไขด้วยหน้าที่เกี่ยวข้องและแทนที่ URL เปลี่ยนเส้นทางในโค้ดด้านบนและเพิ่มไปยัง functions.php เพื่อเปลี่ยนเส้นทางผู้ใช้ที่ไม่ได้เข้าสู่ระบบไปยัง URL ของหน้านั้น
ผู้ดูแลระบบ Init Redirect Action หากผู้ใช้ไม่ได้เข้าสู่ระบบ
หรือคุณสามารถขอ admin_init
แทน template_redirect
เพื่อเปลี่ยนเส้นทางผู้ใช้หากไม่ได้ลงชื่อเข้าใช้ WordPress
รหัสควรเหมือนกันนอกเหนือจากจุดที่เพิ่มเบ็ดการดำเนินการ รหัสควรเป็นดังนี้:
add_action( 'admin_init', 'redirect_if_user_not_logged_in' ); ฟังก์ชัน redirect_if_user_not_logged_in() { if ( !is_user_logged_in() && is_page('slug') ) { wp_redirect( 'http://your-redirect-page-here'); ทางออก; } }
เมื่อเราเพิ่มโค้ดนี้ในธีมเริ่มต้นของ WordPress functions.php และเพิ่มกระสุนสำหรับหน้าที่เราต้องการสร้างการเปลี่ยนเส้นทางและ URL สำหรับปลายทาง มันทำงานได้อย่างสมบูรณ์ตามที่คุณเห็น:
ความคิดสุดท้าย
เมื่อคุณต้องการสร้างการเปลี่ยนเส้นทางหากผู้ใช้ไม่ได้เข้าสู่ระบบใน WordPress คุณต้องตรวจสอบก่อนว่าผู้ใช้เข้าสู่ระบบโดยใช้รหัสที่ฉันแชร์ในโพสต์นั้นหรือไม่ จากนั้นใช้ ฟังก์ชัน wp_redirect() เพื่อเพิ่มปลายทางใหม่ที่ผู้ใช้ควร จะถูกเปลี่ยนเส้นทางหากพวกเขาเข้าถึงบางหน้าหรือโพสต์
คุณสามารถเพิ่มโค้ดนี้ลงในไฟล์ functions.php ของธีมของคุณ หรือคุณสามารถใช้เป็นส่วนหนึ่งของปลั๊กอิน WordPress ที่คุณกำหนดเองได้ เป็นสิ่งสำคัญที่ต้องจำไว้เสมอว่า เมื่อคุณใช้ฟังก์ชัน wp_redirect คุณ ไม่ ควรลืม เพิ่ม exit เนื่องจากฟังก์ชันนี้จะไม่ออกโดยอัตโนมัติ
ในฐานะนักพัฒนาปลั๊กอิน WordPress คุณอาจพิจารณาปลั๊กอินเปลี่ยนเส้นทาง WordPress อื่น wp_safe_redirect() ซึ่งเป็นวิธีที่ดีกว่าในการเปลี่ยนเส้นทาง เนื่องจากจะตรวจสอบว่าโฮสต์พารามิเตอร์ $location ได้รับอนุญาตหรือไม่
บทความที่คล้ายกัน
- วิธีลบหรือปิดใช้งานรีวิวใน WooCommerce
- วิธีตรวจสอบว่าปลั๊กอินมีการใช้งานใน WordPress หรือไม่ [ 3 วิธี ]
- วิธีสร้างพื้นที่วิดเจ็ตที่กำหนดเองใน WordPress ทีละขั้นตอน
- วิธีซ่อนผลิตภัณฑ์ใน WooCommerce หรือซ่อนผลิตภัณฑ์ตามหมวดหมู่หรือบทบาท
- วิธีเปลี่ยนการกลับไปที่ลิงค์ร้านค้าใน Woocommerce
- วิธีสร้างบทบาทผู้ใช้ที่กำหนดเองของ WordPress
- วิธีรับบทบาทผู้ใช้ปัจจุบันใน WordPress & แสดงบทบาท
- วิธีแก้ไขข้อผิดพลาดประเภท Uncaught: wp.template ไม่ใช่ฟังก์ชัน
- คู่มือฉบับสมบูรณ์เกี่ยวกับการใช้ WordPress Custom Hooks do_action & apply_filters พร้อมตัวอย่าง
- วิธีเปลี่ยนเส้นทางผู้ใช้หลังจากเข้าสู่ระบบสำเร็จใน WordPress โดยไม่ต้องใช้ปลั๊กอิน
- ออกจากระบบ WooCommerce โดยไม่มีการยืนยัน : วิธีลบ "คุณแน่ใจหรือไม่ว่าต้องการออกจากระบบ"
- วิธีเปลี่ยนเส้นทางไปยังรถเข็นหลังจากเข้าสู่ระบบใน WooCommerce
- ตัวอย่าง PHP ออกจากระบบ WooCommerce เพื่อสร้างปุ่มออกจากระบบ
- วิธีสร้างประกาศผู้ดูแลระบบ WooCommerce สำหรับปลั๊กอิน – การพัฒนา WooCommerce
- วิธีการลบได้ถูกเพิ่มไปยังข้อความรถเข็นของคุณ WooCommerce
- วิธีเพิ่มข้อความหลังราคาใน WooCommerce » เพิ่มคำต่อท้ายราคา
- วิธีการเปลี่ยนดำเนินการชำระเงินข้อความใน WooCommerce