สร้างเขตข้อมูลผู้ติดต่อ WordPress ของคุณเอง

วันนี้ฉันสร้างปลั๊กอินใหม่ให้คุณ ปลั๊กอินที่เกี่ยวข้องกับวิธีการติดต่อผู้ใช้ โดยทั่วไปเมื่อคุณแก้ไขผู้ใช้ในการดูแลระบบจะมีบล็อก “ข้อมูลการติดต่อ” ดีฉันต้องการแสดงวิธีเพิ่มฟิลด์ของคุณเองที่นั่นและเพิ่มเติมอีกเล็กน้อยวิธีแสดง (หรือไม่) ฟิลด์ใหม่เหล่านี้ในหน้าลงทะเบียน.


นี่คือตัวอย่างของสิ่งที่เรากำลังจะสร้าง:

แก้ไขกำหนดเองฟิลด์

ฟิลด์ผู้ใช้ใหม่ในหน้าแก้ไข

เขตที่กำหนดเอง

ฟิลด์ที่กำหนดเองในหน้าการลงทะเบียน

และตามปกติเราจะสร้างปลั๊กอินที่ดีและเรียบง่าย!

ขั้นตอนที่ 1: สร้างปลั๊กอิน

สร้างโฟลเดอร์ใหม่ใน wp-content / plugins และเรียกมันว่า “custom-user-contact-methods” ภายในโฟลเดอร์ที่สร้างขึ้นใหม่นี้ให้สร้างไฟล์ชื่อ“ rc-custom-user-contact-methods.php” และเปิดในซอฟต์แวร์แก้ไขที่คุณชื่นชอบ.

วางเนื้อหานี้ในไฟล์เปล่าของคุณ รหัสนี้จะลงทะเบียนปลั๊กอิน:

ขั้นตอนที่ 2: กำหนดฟิลด์ที่คุณกำหนดเอง

ต่อไปเราต้องสร้างตัวแปรที่จะมีฟิลด์ที่กำหนดเองของเราคนที่จะใช้ในหน้ารุ่นผู้ใช้และในหน้าเริ่มต้นการลงทะเบียน ลองเก็บฟิลด์เหล่านี้เป็นตัวแปรที่ชื่อว่า $ extra_fields.

$ extra_fields = อาร์เรย์ (
อาร์เรย์ ('facebook', __ ('ชื่อผู้ใช้ Facebook', 'rc_cucm'), จริง),
อาร์เรย์ ('twitter', __ ('ชื่อผู้ใช้ Twitter', 'rc_cucm') จริง),
อาร์เรย์ ('googleplus', __ ('Google+ ID', 'rc_cucm'), จริง),
อาร์เรย์ ('linkedin', __ ('เชื่อมโยงใน ID', 'rc_cucm'), false),
อาร์เรย์ ('pinterest', __ ('ชื่อผู้ใช้ Pinterest', 'rc_cucm'), เท็จ),
อาร์เรย์ ('wordpress', __ ('WordPress.org ชื่อผู้ใช้', 'rc_cucm'), เท็จ),
อาร์เรย์ ('โทรศัพท์', __ ('หมายเลขโทรศัพท์', 'rc_cucm'), จริง)
);

เรากำลังเก็บทุกฟิลด์ภายในอาเรย์ที่มีพารามิเตอร์ 3 ตัวอันแรกคือ ID ฟิลด์, อันที่สองคือเลเบลของฟิลด์และอันสุดท้ายคือข้อมูลบูลีนที่กำหนดว่าฟิลด์นั้นจะแสดงในหน้าการลงทะเบียนหรือไม่ . คุณสามารถเพิ่มพารามิเตอร์ได้มากเท่าที่คุณต้องการตัวอย่างเช่นตัวยึดตำแหน่งหรือข้อมูลที่จำเป็น.

ขั้นตอนที่ 3: ขอตัวกรองที่ถูกต้อง

ตอนนี้เราต้องขอฟังก์ชั่นกับตัวกรองที่ถูกต้อง ในกรณีเฉพาะของเราตัวกรองคือ“ user_contactmethods” และชื่อของฟังก์ชันที่เราจะสร้างคือ“ rc_add_user_contactmethods”.

// ใช้ user_contactmethods เพื่อเพิ่มฟิลด์ใหม่
add_filter ('user_contactmethods', 'rc_add_user_contactmethods');

ขั้นตอนที่ 4: สร้างฟิลด์ที่กำหนดเองของเรา

ตอนนี้เราต้องสร้างฟังก์ชัน“ rc_add_user_contactmethods” เป็นฟิลด์ที่จะเพิ่มฟิลด์ที่กำหนดเองของเราไปยังหน้าแก้ไขผู้ใช้ ข่าวดีก็คือเราเก็บฟิลด์ของเราไว้ในอาเรย์หมายความว่าฟังก์ชั่นต่อไปนี้จะเป็นแบบไดนามิกอย่างสมบูรณ์และมันจะค่อนข้างง่ายในการเพิ่มฟิลด์ใหม่โดยการแก้ไขตัวแปร $ extra_fields.

/ **
* เพิ่มวิธีการติดต่อที่กำหนดเองของผู้ใช้ที่กำหนดเอง
* * * *
* @access สาธารณะ
* @since 1.0
* @return ถือเป็นโมฆะ
* /
ฟังก์ชัน rc_add_user_contactmethods ($ user_contactmethods) {

// รับฟิลด์
ทั่วโลก $ extra_fields

// แสดงแต่ละฟิลด์
foreach ($ extra_fields เป็น $ field) {
if (! isset ($ contactmethods [$ field [0]]))
$ user_contactmethods [$ field [0]] = $ field [1];
}

// ส่งคืนวิธีการติดต่อ
ส่งกลับ $ user_contactmethods
}

ในขั้นตอนนี้ถ้าคุณบันทึกและเปิดใช้งานปลั๊กอินคุณควรเห็นฟิลด์ที่กำหนดเองของคุณในหน้าแก้ไขผู้ใช้ เนื่องจากเราใช้ตะขอที่ถูกต้องเราไม่จำเป็นต้องสร้างข้อมูลในฟิลด์“ บันทึก” ดังนั้นปลั๊กอินใช้งานได้ดีในขณะนี้ แต่ฉันอยากจะไปอีกสักหน่อยแล้วเพิ่มตัวเลือกเพื่อแสดงฟิลด์เหล่านั้นในหน้าลงทะเบียน ตรวจสอบให้แน่ใจว่าคุณทำเครื่องหมายในช่องการตั้งค่าช่องทำเครื่องหมาย "ใคร ๆ ก็สามารถลงทะเบียน" ไม่เช่นนั้นคุณจะไม่เห็นลิงก์ "ลงทะเบียน".

ขั้นตอนที่ 5: Hooks หน้าการลงทะเบียน

ในการเพิ่มฟิลด์ของเราในหน้าการลงทะเบียนเราต้องเข้าถึงอย่างน้อยสอง hooks และสร้างสองฟังก์ชั่น หนึ่งที่จะแสดงเขตข้อมูลและคนที่สองเพื่อบันทึกข้อมูลเขตข้อมูลลงในฐานข้อมูล.

มาฟังก์ชั่นของเรากัน:

// เพิ่มเขตข้อมูลของเราในกระบวนการลงทะเบียน
add_action ('register_form', 'rc_register_form_display_extra_fields');
add_action ('user_register', 'rc_user_register_save_extra_fields', 100);

ขั้นตอนที่ 6: แสดงหน้าลงทะเบียนฟิลด์ที่กำหนดเอง

ในโค้ดด้านบนเราได้ประกาศฟังก์ชันที่สอง คนแรกคือการแสดงเขตข้อมูลในหน้าการลงทะเบียน ในส่วนนี้เราต้องดูแลพารามิเตอร์ที่สามของแต่ละอาร์เรย์ใน $ extra_fields พารามิเตอร์บูลีนนี้บอกว่าจะต้องแสดงฟิลด์หรือไม่ จริง: ฟิลด์จะปรากฏขึ้นเป็นเท็จ: ฟิลด์จะไม่ปรากฏ.

/ **
* แสดงฟิลด์ที่กำหนดเองในหน้าการลงทะเบียน
* * * *
* แสดงฟิลด์ที่กำหนดเองในการลงทะเบียนหากฟิลด์พารามิเตอร์ที่สามตั้งค่าเป็นจริง
* * * *
* @access สาธารณะ
* @since 1.0
* @return ถือเป็นโมฆะ
* /
ฟังก์ชัน rc_register_form_display_extra_fields () {

// รับฟิลด์
ทั่วโลก $ extra_fields

// แสดงแต่ละฟิลด์หากพารามิเตอร์ที่ 3 ตั้งค่าเป็น "true"
foreach ($ extra_fields เป็น $ field) {
if ($ field [2] == จริง) {
$ field_value = isset ($ _POST [$ field [0]])? $ _POST [$ field [0]]: '';
echo '

'; } // endif } // end foreach }

ขั้นตอนที่ 7: เก็บค่าฟิลด์เมื่อกระบวนการลงทะเบียน

ตอนนี้เขตข้อมูลของเราจะปรากฏในหน้าการลงทะเบียนเราต้องการเพื่อเก็บค่าลงในฐานข้อมูล นี่คือ aime ของฟังก์ชัน“ rc_user_register_save_extra_fields” ในการทำเช่นนั้นเราจำเป็นต้องใช้“wp_update_user ()” ฟังก์ชั่น.

/ **
* บันทึกค่าฟิลด์
* * * *
* @access สาธารณะ
* @since 1.0
* @return ถือเป็นโมฆะ
* /
ฟังก์ชัน rc_user_register_save_extra_fields ($ user_id, $ password = '', $ meta = array ()) {

// รับฟิลด์
ทั่วโลก $ extra_fields

$ userdata = array ();
$ userdata ['ID'] = $ user_id;

// บันทึกแต่ละฟิลด์
foreach ($ extra_fields เป็น $ field) {
if ($ field [2] == จริง) {
$ userdata [$ field [0]] = $ _POST [$ field [0]];
} // endif
} // end foreach

$ new_user_id = wp_update_user ($ userdata);
}

ข้อสรุป

เราเห็นพื้นฐานของวิธีเพิ่มเขตข้อมูลใหม่ลงในวิธีการติดต่อผู้ใช้ แต่นั่นคือทั้งหมด ตัวอย่างเช่นคุณสามารถลบเขตข้อมูลที่มีอยู่เช่น“ Yahoo IM”,“ AIM” และ“ Jabber” ทำการยกเลิกการตั้งค่าง่าย ๆ () แต่คุณยังสามารถเพิ่มฟังก์ชั่นบางอย่างเพื่อฆ่าเชื้อในฟิลด์ที่กำหนดเองของคุณเพื่อตรวจสอบว่าหมายเลขโทรศัพท์มีรูปแบบที่เหมาะสมหรือไม่ถ้าจำเป็นต้องกรอกข้อมูลในฟิลด์หรืออื่น ๆ ... อย่าลังเลที่จะถามคุณสมบัติเฉพาะในความคิดเห็น!

โอ้และสุดท้าย ... ถ้าคุณต้องการแสดงข้อมูลของสาขาใด ๆ ของคุณเพียงแค่ใช้สิ่งนี้:

// Param 1 คือ ID ผู้ใช้
// พารามิเตอร์ 2 คือ ID ฟิลด์
// Param 3 อยู่ที่นั่นเพื่อรับค่า var หรือ array
echo get_user_meta (1, 'twitter', จริง);  
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

    Like this post? Please share to your friends:
    Adblock
    detector
    map