โกลอฟนา
เบราว์เซอร์
- เราสร้างหน้าการลงทะเบียนแบบกำหนดเองสำหรับหลายไซต์แทน wp-signup.php มาตรฐาน
- สำหรับหน้าการลงทะเบียน WordPress เริ่มต้น (การอนุญาต การรีเซ็ตรหัสผ่าน) ให้ป้อนไฟล์ wp-login.php
- /wp-login.php - การอนุญาต
/wp-login.php?action=register - การลงทะเบียน
/wp-login.php?action=lostpassword - รหัสผ่านสูญหาย
สำหรับหลายไซต์ wp-login.php จะแตกต่างไปจากเดิมอย่างสิ้นเชิง
ดังนั้น เมื่อไปที่ /wp-login.php?action=register บนหลายไซต์ WordPress ให้สร้างการเปลี่ยนเส้นทางไปยังฝั่ง /wp-signup.php
หลายๆเรื่องด้านข้างดูไม่ค่อยน่าดึงดูดเลยหมดพลังไป
เว็บไซต์หลักของ Merezha
หลังจากโปรโมชัน WordPress จะเปิดหน้าการลงทะเบียน (wp-signup.php) บนโดเมนหลัก (ไซต์) ของเครือข่าย
อย่างไรก็ตาม คุณสามารถสร้างไซต์การลงทะเบียนแบบเคียงข้างกันสำหรับไซต์สกินได้ เนื่องจากไซต์เหล่านั้นอาจแตกต่างกัน
ปลั๊กอิน MU สามารถรองรับไฟล์จำนวนเท่าใดก็ได้หรือโครงสร้างใดๆ ที่ดูสมเหตุสมผลสำหรับคุณ
ฉันต้องการประมาณลำดับชั้นนี้:
|-mu-plugins |-|-load.php |-|-|-selena-network |-|-|-|-signup |-|-|-|-|-plugin.php |-|-|-|
-|-... |-|-|-|-jetpack |-|-|-|-|-plugin.php
ไฟล์ load.php มีปลั๊กอินที่จำเป็นทั้งหมดสำหรับเครือข่ายของเรา:
// โหลดการแปลสำหรับส่วนเสริมทั้งหมด load_muplugin_textdomain ("selena_network", "/selena-network/ languages/");
// การลงทะเบียนเครือข่ายต้องใช้ WPMU_PLUGIN_DIR
"/selena-network/signup/plugin.php";
// ปลั๊กอินอื่น ๆ // ต้องการ WPMU_PLUGIN_DIR ...
ตรงกลางโฟลเดอร์ selena-network จะมีโฟลเดอร์ปลั๊กอิน ซึ่งแต่ละโฟลเดอร์จะมี Plugin.php ของตัวเอง ซึ่งเรารวมไว้ใน load.php
ซึ่งให้ความยืดหยุ่นและสามารถเปิดและปิดการดำเนินการคำพูดได้อย่างรวดเร็ว
ที่อยู่ด้านทะเบียน
หากต้องการป้อนที่อยู่ของหน้าการลงทะเบียน ให้ใช้ตัวกรอง wp_signup_location
คุณสามารถค้นหาได้ตรงกลางไฟล์ wp-login.php และตัวมันเองบ่งชี้ว่ามีการเปลี่ยนเส้นทางไปยัง wp-signup.php
กรณี "ลงทะเบียน" : if (is_multisite()) ( wp_redirect(apply_filters("wp_signup_location", network_site_url("wp-signup.php"))));
wp-signup.php และ wp-activate.php
ตอนนี้เรามาดูฟังก์ชันการสร้างซึ่งก็คือการแสดงแบบฟอร์มการลงทะเบียน
- เพื่อจุดประสงค์นี้ เราคัดลอกไฟล์ wp-signup.php และ wp-activate.php จากรูทของ WordPress ที่ mu-plugings/selena-network/signup/ (และอย่าลืมเชื่อมต่อไฟล์เหล่านั้นตรงกลาง mu-plugins/ selena-network/signup/plugin.php)
- เป็นการยากที่จะอธิบายการปรับแต่งไฟล์เพิ่มเติมดังนั้นคุณจะต้องดำเนินการด้วยตนเอง
- ฉันจะอธิบายสิ่งที่คุณต้องการในการผลิตและเผยแพร่ไฟล์เอาต์พุตของโครงการของคุณ:
- ที่ด้านบนของไฟล์ ให้ลบ need ทั้งหมด คลิกฟังก์ชัน รวมถึงโค้ดและฟังก์ชันอื่นๆ
เปลี่ยนชื่อฟังก์ชันทั้งหมดโดยเพิ่มคำนำหน้าเฉพาะให้กับชื่อ
- ล้อมส่วนล่างของโค้ด wp-signup.php ในฟังก์ชัน selena_network_signup_main และเขียน global $active_signup;
- -
แทนที่เค้าโครงด้วย Vlasna ในตำแหน่งที่ต้องการ
ในช่วงกลางของ wp-activate.php คุณต้องสร้างสิ่งนี้:
ลบโค้ดทั้งหมดที่มีฟังก์ชัน ล้อมเค้าโครงรอบฟังก์ชัน
เปลี่ยนเค้าโครงในท้องถิ่นตามที่จำเป็น
ไฟล์ wp-activate.php แสดงถึงหน้าการเปิดใช้งานบัญชีคลาวด์
ในด้านการลงทะเบียน จำเป็นต้องสร้างเทมเพลต ตรงกลางให้คลิกฟังก์ชันจากไฟล์ wp-activate.php
บนอินเทอร์เน็ตไม่มีวิธีที่ไม่ถูกต้องอื่น ๆ ในการทำเช่นเดียวกัน - การเปลี่ยนเส้นทาง Apache, แบบฟอร์ม AJAX, วิธีที่จะไม่ประมวลผลโดยไม่มีสคริปต์ Java เป็นต้น ทั้งหมดนี้ไม่เพียงพอสำหรับฉัน ดังนั้นฉันจึงพยายามหารายได้อย่างถูกต้องที่สุดจากเว็บไซต์อย่างเป็นทางการของฉัน
ฉันขอขอบคุณที่คุณควรแก้ไขไฟล์อย่างระมัดระวังและไม่เกะกะเกินไป ดังนั้นในอนาคตหากคุณเปลี่ยนไฟล์ wp-signup.php และ wp-activate.php ใน WordPress มันจะง่ายกว่าสำหรับพวกเขาที่จะจับคู่แต่ละไฟล์ อื่นๆ เพื่อความสนุกสนาน
อย่าลืมดูเอาท์พุตโค้ดของคำอธิบายฟังก์ชันทั้งหมดเพื่อทำความเข้าใจว่าเกิดอะไรขึ้นในช่วงกลางของโค้ด
โบนัส. ป้องกันจากสแปมเมอร์
เว็บไซต์ WordPress ส่วนใหญ่มักประสบปัญหาการลงทะเบียนสแปม
คุณสามารถเขียนไอเดียมากมายในการกรองบอทได้ ซึ่งมักจะคล้ายกับการพยายามสร้างปัญญาเป็นชิ้นๆ
(ฉันไม่ใช่ผู้เชี่ยวชาญ Apache ดังนั้นกฎของฉันอาจไม่ถูกต้อง)
RewriteEngine บน RewriteBase / RewriteRule ^wp-signup\.php - RewriteRule ^wp-activate\.php - # BEGIN WordPress # กฎใน WordPress ไม่ได้รับการดูแล :) # ... # END WordPress
ป.ล. ฉันพยายามอธิบายการกระทำของสุนทรพจน์ของบุคคลที่สามให้ละเอียดที่สุดเท่าที่จะเป็นไปได้ เพราะเมื่อฉันเริ่มไม่มีใครแนะนำและอธิบายสุนทรพจน์มากมาย
ฉันยังรู้สึกซาบซึ้งที่จุดเล็กๆ น้อยๆ ในสื่ออื่นๆ จะช่วยให้บางคนเรียนรู้สิ่งใหม่ๆ และเพิ่มพูนความรู้ของพวกเขา
- รายการ RewriteRule มีนิพจน์ทั่วไป ซึ่งไม่ซับซ้อนเลย เช่น สัญลักษณ์หมายถึงส่วนหัวของแถว
- ช่วยให้คุณสร้างการติดตั้ง WordPress เดียวสำหรับหลาย ๆ ไซต์ในเวลาเดียวกัน
- ในกรณีนี้ ไซต์จะดึงข้อมูลในฐานข้อมูลด้วยคำนำหน้าเฉพาะ
ตารางข้อมูลการลงทะเบียนสำหรับร้านค้าและพันธมิตรสำหรับทุกไซต์ในเครือข่าย
นอกเหนือจากการลงทะเบียนบัญชีท้องถิ่นของคุณแล้ว คุณสามารถสร้างไซต์ใหม่ได้หากผู้ดูแลระบบระดับสูงได้เปิดใช้งานคุณสมบัตินี้ในการตั้งค่าที่กำหนดไว้ (ผู้ดูแลระบบเครือข่าย → การตั้งค่า → การตั้งค่าเครือข่าย)
ที่นี่หน้าลงทะเบียนดูไม่ค่อยดีนัก
ด้วยธีมการออกแบบมากมาย เฟรมเวิร์ก CSS เช่น Bootstrap และคลาสเฉพาะมากมายสำหรับการจัดสไตล์องค์ประกอบต่างๆ บนเพจ การเขียน HTML เดียวที่เหมาะกับทุกคนจึงเป็นเรื่องสำคัญ
ไม่ใช่ความคิดที่ดีที่จะคลั่งไคล้ เนื่องจากฝ่ายนั้นดูไร้เดียงสา
/wp-login.php?action=lostpassword - รหัสผ่านสูญหาย
ไฟล์ wp-signup.php นั้นยอดเยี่ยมมากในตอนนี้ หากคุณไม่มีเวลาเพียงพอที่จะประมวลผลทุกรายละเอียดของเว็บไซต์ คุณสามารถมุ่งเน้นไปที่หน้าและเนื้อหาอื่น ๆ ที่สำคัญกว่าได้
เมื่อคุณพร้อมที่จะสร้างเว็บไซต์ลงทะเบียนของคุณเอง wp-signup.php จะเป็นสัญญาณที่ดีและเป็นเครื่องมือสำหรับการเข้าถึงฟังก์ชันต่างๆ ที่ WordPress จัดเตรียมไว้ให้สำหรับการประมวลผลและการตรวจสอบข้อมูลที่ผู้ใช้ป้อนและสร้างบันทึกระบบคลาวด์ใหม่
หลังจากโปรโมชัน WordPress จะเปิดหน้าการลงทะเบียน (wp-signup.php) บนโดเมนหลัก (ไซต์) ของเครือข่าย
อย่างไรก็ตาม คุณสามารถสร้างไซต์การลงทะเบียนแบบเคียงข้างกันสำหรับไซต์สกินได้ เนื่องจากไซต์เหล่านั้นอาจแตกต่างกัน
ทิมไม่น้อย คุณสามารถสร้างหน้าลงทะเบียนสำหรับสกินไซต์ของชายแดนได้ ราวกับว่าพวกมันมีกลิ่นเหม็น
เรามองว่าเป็นปัญหาหากไซต์เนื้อหาทั้งหมดมีหัวข้อเดียว แต่มีเพียงไซต์เดียวเท่านั้นที่มีหน้าลงทะเบียน
ไซต์ต่างๆ ของฉันแยกจากกัน (ภาษาอังกฤษและรัสเซีย) ดังนั้นหน้าการลงทะเบียนจะปรากฏบนเว็บไซต์ "ดั้งเดิม" ของฉัน
เนื่องจากไซต์ต่างๆ มีไว้สำหรับหัวข้อที่แตกต่างกัน ทุกอย่างจะขึ้นอยู่กับไซต์เดียวกันกับที่พวกเขาจะดำเนินการด้วยเค้าโครงใหม่ (มีสถานการณ์ที่สามารถแนะนำคุณในการรวมหัวข้อทั้งหมดของคุณ) อย่าลืมประมวลผลหน้าทีละหน้า .
โฟลเดอร์ปลั๊กอินจะถูกบันทึกไว้ตรงกลางไดเร็กทอรี selena-network
แต่ละอันมี Plugin.php ของตัวเอง ซึ่งเชื่อมต่อกับ load.php
สิ่งนี้ให้ความยืดหยุ่นและความสามารถในการปิดและเปิดส่วนประกอบอื่นๆ ในโปรเจ็กต์การทำงานเมื่อใดก็ตามที่มีเหตุฉุกเฉิน
หน้าลงทะเบียน
เมื่อเห็นว่าเราเขียนโค้ดไว้ที่ไหนแล้วคุณสามารถไปที่หน้าแรกของการลงทะเบียนได้
มาสร้างเพจตามที่อยู่ example.org/signup/ ผ่านอินเทอร์เฟซหลักกันดีกว่า
คุณสามารถใช้ URL เดียวกันกับที่อยู่ที่เหมาะกับโครงการของคุณได้
เปลี่ยนเส้นทางไปยังหน้าการลงทะเบียนที่จำเป็น
เพื่อให้ WordPress ทราบเกี่ยวกับหน้าการลงทะเบียนใหม่ของเราและเปลี่ยนเส้นทางไปยังหน้านั้น เมื่อคุณคลิกที่ข้อความ “ลงทะเบียน” ตัวกรอง wp_signup_location จะปรากฏขึ้น
คุณสามารถค้นหาได้ตรงกลางของ wp-login.php และตัวมันเองก็บ่งชี้ถึงการเปลี่ยนเส้นทางไปยัง wp-signup.php เพื่อดูคำแนะนำ
กรณี "register" : if (is_multisite()) ( wp_redirect(apply_filters("wp_signup_location", network_site_url("wp-signup.php"))); exit; // ...
อย่างที่คุณจำได้ หน้าการลงทะเบียนจะเปิดขึ้นในโดเมนหลักของเครือข่าย
Network_site_url() ก็เป็นวิกิพีเดียสำหรับสิ่งนี้เช่นกัน
เพิ่มลายเซ็นของคุณลงในตัวกรองใน mu-plugins/selena-network/signup/plugin.php ซึ่งจะมอบให้กับที่อยู่หน้าการลงทะเบียนบนไซต์สตรีมมิ่ง:
ฟังก์ชั่น selena_network_signup_page($url) ( return home_url("signup"); ) add_filter("wp_signup_location", "selena_network_signup_page", 99);
ต่อไปเรากลัวทุกวิธีการ และก่อนจะลงมือทำ เราต้องระวังปรับปรุงการทำงานของผิวเสียก่อน
- ในช่วงกลางของแพ็ก มักจะใช้ฟังก์ชันอื่นที่มีคำนำหน้า wpmu_ ซึ่งทั้งหมดสามารถพบได้ในไฟล์ wp-include/ms-functions.php
- สิ่งสำคัญคือต้องเข้าใจส่วนนี้และอย่าแก้ไขโค้ดด้วยตนเอง
- ด้านล่างนี้เป็นคำอธิบายของฟังก์ชันหลักในกรณีที่คุณประสบปัญหา
- wpmu_signup_stylesheet() – แสดง CSS เพิ่มเติมในหน้าการลงทะเบียน
- show_blog_form() - ฟิลด์สำหรับการลงทะเบียนกับเว็บไซต์ (ที่อยู่, ชื่อของการมองเห็นสำหรับเครื่องมือค้นหา)
- validate_blog_form() - การตรวจสอบที่อยู่ที่ป้อนสำหรับไซต์และโทร wpmu_validate_blog_signup() เพื่อขอความช่วยเหลือ
- show_user_form() - ช่องสำหรับลงทะเบียนลูกค้า (ข้อมูลเข้าสู่ระบบและที่อยู่อีเมล)
- validate_user_form() - การตรวจสอบการเข้าสู่ระบบและที่อยู่อีเมลที่ป้อน
- โปรดขอความช่วยเหลือจาก wpmu_validate_user_signup()
- signup_another_blog() - ฟิลด์สำหรับการลงทะเบียนไซต์ใหม่โดยใช้ show_blog_form() สำหรับผู้มีส่วนร่วมที่ลงทะเบียนบนเว็บไซต์แล้ว
- validate_another_blog_signup() - ตรวจสอบที่อยู่ไซต์และโทร validate_blog_form() เพื่อขอความช่วยเหลือ
signup_user() เป็นฟังก์ชันหลักในการแสดงช่องต่างๆ ในหน้าลงทะเบียน
validate_user_signup() - ตรวจสอบการเข้าสู่ระบบและที่อยู่อีเมล
โปรดขอความช่วยเหลือจาก validate_user_form()
signup_blog() - ช่องสำหรับป้อนที่อยู่ ชื่อของการเปิดเผยไซต์ (เงื่อนไขการลงทะเบียนอื่น) โดยใช้ show_blog_form()
มาดูฟังก์ชั่นการสร้างกัน เช่น การแสดงแบบฟอร์มลงทะเบียนในหน้าเพจ
ในการดำเนินการนี้ ให้คัดลอก wp-signup.php จากรูทของ WordPress ที่ mu-plugings/selena-network/signup/
มาเชื่อมต่อกันใน mu-plugins/selena-network/signup/plugin.php)
ต้องการ WPMU_PLUGIN_DIR