บาบาเพิ่มรีวิว php.ini วิธีสร้างประเภทโพสต์ WordPress แบบกำหนดเอง สร้างเทมเพลตแบบกำหนดเองสำหรับประเภทโพสต์แบบกำหนดเอง

รับคำติชมอันมีค่าจากลูกค้าของคุณโดยให้อิสระแก่พวกเขาในการแบ่งปันความประทับใจได้อย่างอิสระ ปล่อยให้พวกเขาให้คะแนนผลิตภัณฑ์และ/หรือบริการของคุณบนเว็บไซต์ของคุณโดยตรง ดูคุณสมบัติหลักที่มาพร้อมกับระบบตรวจสอบออนไลน์ของเราด้านล่าง

    บทวิจารณ์และการให้คะแนน

    ฝังสคริปต์ตรวจสอบ PHP ลงในเว็บไซต์ของคุณ และให้ลูกค้าแบ่งปันประสบการณ์กับผลิตภัณฑ์และบริการที่คุณนำเสนอ พวกเขาสามารถให้คะแนนตามเกณฑ์และให้ข้อเสนอแนะทั้งเชิงบวกและเชิงลบ

    หลายภาษา

    ระบบตรวจสอบ PHP ไม่เพียงแต่พูดภาษาอังกฤษได้เท่านั้น แต่ยังพูดภาษาใดก็ได้ที่คุณอาจต้องการอีกด้วย คุณสามารถแปลชื่อเรื่องและข้อความระบบทั้งหมดได้จากหน้าผู้ดูแลระบบโดยใช้รหัสเฉพาะสำหรับข้อความแต่ละชิ้น

    เกณฑ์การให้คะแนนที่แก้ไขได้

    ขึ้นอยู่กับประเภทของธุรกิจ ผู้ดูแลระบบตรวจสอบสามารถทำได้
    กำหนดเกณฑ์การให้คะแนนที่แตกต่างกันเพื่อแสดงในรูปแบบส่วนหน้า
    แต่ละเกณฑ์เหล่านี้ได้รับการจัดอันดับตั้งแต่ 1 ถึง 5 ดาว

    การแจ้งเตือนทางอีเมลและ SMS

    ตั้งค่าระบบรีวิวออนไลน์เพื่อส่งอีเมล์และ SMS แจ้งเตือนเมื่อมีการโพสต์รีวิวใหม่ คุณสามารถระบุผู้ใช้ที่จะรับข้อความเหล่านี้ได้อย่างง่ายดายจากเมนูผู้ใช้

    ผู้ใช้หลายประเภท

    สร้างประเภทไคลเอนต์ได้ไม่จำกัด ขึ้นอยู่กับอุตสาหกรรมและบริการที่ใช้ การให้คะแนนโรงแรมสามารถสอดคล้องกับประเภทผู้ใช้ต่อไปนี้: ครอบครัวที่มีเด็ก คู่รัก การเดินทางเพื่อธุรกิจ ฯลฯ ปรากฏเป็นป้ายกำกับในการรีวิว

    ตอบสนองและน่าดึงดูด

    สคริปต์การวิจารณ์และการให้คะแนนทำงานบนอุปกรณ์ทั้งหมด โดยปรับให้เข้ากับขนาดหน้าจอต่างๆ ได้อย่างราบรื่น เพื่อให้สอดคล้องกับการสร้างแบรนด์เว็บไซต์ของคุณ คุณสามารถเลือกธีมส่วนหน้าที่ตรงกันมากที่สุดจากตัวเลือกสี 10 สี

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

    ด้วยใบอนุญาตสำหรับนักพัฒนา คุณจะได้รับซอร์สโค้ดและสามารถเปลี่ยนแปลงสคริปต์ตรวจสอบ PHP แบบกำหนดเองได้ นอกจากนี้เรายังสามารถปรับเปลี่ยนระบบการตรวจสอบลูกค้าได้เมื่อมีการร้องขอ

ไฟล์เทมเพลต WooCommerce มีเลย์เอาต์และโครงสร้างของเทมเพลตอินเทอร์เฟซ (และอีเมล HTML) สำหรับร้านค้าของคุณ หากคุณเปิดไฟล์เหล่านี้ คุณจะสังเกตเห็นว่าไฟล์เหล่านี้ทั้งหมดมี hook มากมายที่จะช่วยให้คุณเพิ่ม/ย้ายเนื้อหาโดยไม่ต้องแก้ไขไฟล์เทมเพลตด้วยตนเอง วิธีการนี้จะช่วยป้องกันปัญหาใดๆ จากการอัพเดต เนื่องจากไฟล์เทมเพลตสามารถคงสภาพเดิมได้อย่างสมบูรณ์

นอกจากนี้ คุณยังแก้ไขไฟล์เหล่านี้ได้อย่างปลอดภัยโดยใช้การปลอมแปลง เพียงคัดลอกลงในเทมเพลตของคุณในโฟลเดอร์ชื่อ /woocommerce โดยคงโครงสร้างลำดับชั้นของไฟล์ย่อยและโฟลเดอร์ไว้เหมือนเดิม

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

- ในการดำเนินการนี้ ให้สร้างโฟลเดอร์ woocommerce จากไดเร็กทอรีในธีมของคุณ และโอนเทมเพลตไปที่ธีมนั้น โดยสังเกตการซ้อนกันของโฟลเดอร์ ตัวอย่าง: หากต้องการเปลี่ยนแปลงเทมเพลตรถเข็น ให้คัดลอก woocommerce/templates/cart/cart.php วี หลังจากนั้น คุณสามารถทำการเปลี่ยนแปลงใดๆ กับไฟล์เทมเพลตได้ cart.php ซึ่งอยู่ในโฟลเดอร์ที่มีธีมของคุณ (เช่น ในไฟล์ cart.php, ตั้งอยู่ที่ your_theme/woocommerce/cart/cart.php


) และการเปลี่ยนแปลงที่คุณทำจะยังคงอยู่แม้ว่าจะอัปเดต WooCommerce แล้วก็ตาม

ในไดเร็กทอรี /woocommerce/templates/ คุณจะพบไฟล์เทมเพลตต่อไปนี้

สปอยเลอร์: รายการไฟล์

(รายการไฟล์เทมเพลตนี้เกี่ยวข้องกับ WooCommerce 2.0+):

· ไฟล์เก็บถาวร-product.php


รถเข็น/

· cart-empty.php

cross-sells.php

mini-cart.php

shipping-calculator.php

วิธีจัดส่ง.php


· ผลรวม.php


ชำระเงิน/

cart-errors.php

แบบฟอร์ม billing.php

แบบฟอร์ม checkout.php

แบบฟอร์มคูปอง.php

แบบฟอร์มเข้าสู่ระบบ.php

form-pay.php

แบบฟอร์ม shipping.php

รีวิว-order.php

ขอบคุณ.php

· เนื้อหา-product_cat.php

เนื้อหาผลิตภัณฑ์.php


· · เนื้อหา-single-product.php​


อีเมล์/

· admin-new-order.php

· ลูกค้าเสร็จสมบูรณ์-order.php

ลูกค้า-invoice.php

· ลูกค้า-new_account.php

ลูกค้า note.php

· การประมวลผลของลูกค้า-order.php

· ลูกค้ารีเซ็ตรหัสผ่าน.php

อีเมล์ address.php

อีเมล-footer.php

· อีเมล-order-items.php​


· ห่วง/


เพิ่มลงตะกร้า.php

ลูป-end.php

วนรอบ start.php

ไม่พบผลิตภัณฑ์-found.php

pagenation.php

ผลลัพธ์นับ.php

· ขาย-flash.php


· บัญชีของฉัน/


แบบฟอร์มเปลี่ยนรหัสผ่าน.php

แบบฟอร์มแก้ไข-address.php

แบบฟอร์มคูปอง.php

แบบฟอร์มลืมรหัสผ่าน.php

บัญชีของฉัน.php

my-address.php

my-downloads.php

my-orders.php


· คำสั่ง/


ติดตามแบบฟอร์ม.php

สั่งซื้อรายละเอียด.php

· ติดตาม.php​


· ร้านค้า/


breadcrumb.php

แบบฟอร์มคูปอง.php

ข้อความ.php

wrapper-end.php

นอกจากนี้เรายังจะรวมคุณลักษณะการแก้ไขโพสต์ด้วย ฟิลด์แบบกำหนดเอง (ฟิลด์แบบกำหนดเองหรือแบบกำหนดเอง)สำหรับแต่ละประเภทและแสดงฟิลด์ในเทมเพลตใหม่

ใน WordPress ประเภทโพสต์ที่กำหนดเองช่วยให้คุณสามารถควบคุมวิธีแสดงเนื้อหาต่อผู้ใช้ของคุณได้อย่างสมบูรณ์ หากคุณสร้างโพสต์ในบล็อก คุณสามารถสร้างสไตล์ที่กำหนดเองสำหรับโพสต์เหล่านั้นได้ หากคุณเขียนบทวิจารณ์เกี่ยวกับเพลงหรือภาพยนตร์ คุณสามารถเพิ่มพื้นที่ป้อนข้อมูลเพิ่มเติมในโพสต์ที่คุณต้องการได้ และจะไม่ปรากฏในบล็อกโพสต์อื่นๆ

แต่ก่อนที่เราจะไปต่อ เรามาทำความเข้าใจก่อนว่าโพสต์ของผู้ใช้คืออะไร

ประเภทโพสต์ที่กำหนดเองของ WordPress คืออะไร?

กล่าวโดยสรุป ประเภทโพสต์ที่กำหนดเองของ WordPress ช่วยให้คุณสามารถจัดเรียงโพสต์ตามเนื้อหาได้ ใน WordPress ประเภทโพสต์เริ่มต้นคือ โพสต์, เพจ, สื่อ ฯลฯ

โดยทั่วไป คุณจะเขียนโพสต์ทั้งหมดของคุณในส่วนโพสต์ของคอนโซลผู้ดูแลระบบ จากนั้นจึงกำหนดหมวดหมู่ให้กับโพสต์เหล่านั้น รายการประเภทต่างๆ ทั้งหมดอยู่ในรายการเดียว ซึ่งทำให้ยากต่อการแยกแยะตามประเภทเนื้อหา

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

ในตัวอย่างข้างต้น หากผู้ใช้ไปที่ส่วนฐานข้อมูลภาพยนตร์ในไซต์ของคุณ โพสต์บทวิจารณ์จะไม่รวมอยู่ด้วย ตัวอย่างเช่น หากคุณสร้างหมวดหมู่ "แอ็กชัน" และ "โรแมนติก" ผู้ใช้ของคุณจะสามารถไปที่หมวดหมู่ภาพยนตร์แอ็กชันและดูบทวิจารณ์และภาพยนตร์ทั้งหมดในหมวดหมู่นั้นได้

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

คุณสามารถเปลี่ยนข้อความชื่อเรื่องต่างๆ (กำหนดโดยใช้อาร์เรย์ $ป้ายกำกับ) เช่น การเปลี่ยนชื่อ เพิ่มโพสต์ใหม่วี เพิ่มภาพยนตร์ใหม่- ตัวอย่างเช่น คุณสามารถเปลี่ยนชื่อข้อความได้ รูปภาพเด่นวี เพิ่มโปสเตอร์.

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

ดำเนินการต่อตัวอย่างด้วยบทวิจารณ์ภาพยนตร์และภาพยนตร์ สิ่งพิมพ์ภาพยนตร์สามารถเพิ่มฟิลด์แบบกำหนดเอง/กำหนดเองสำหรับพารามิเตอร์ เช่น ปีที่ออกฉาย ผู้กำกับ เรตติ้ง และอื่นๆ อีกมากมาย พร้อมบทวิจารณ์สั้นๆ เกี่ยวกับภาพยนตร์เป็นเนื้อหาของโพสต์

โดยปกติแล้ว ฟิลด์ใดๆ ที่คุณสร้างจะสามารถใช้ได้ในโพสต์ทุกประเภท ดังนั้นปลั๊กอินจึงต้องมีข้อจำกัดในแต่ละฟิลด์ที่สามารถเข้าถึงได้

การสร้างประเภทโพสต์ใหม่

เมื่อคุณสร้างการเปลี่ยนแปลงที่สำคัญใน WordPress หนึ่งในตัวเลือกการใช้งานที่มีอยู่คือการสร้างปลั๊กอิน คุณยังสามารถสร้างประเภทโพสต์แบบกำหนดเองใหม่ในไฟล์ได้ ฟังก์ชั่น.php- สำหรับคำแนะนำนี้เรา มาสร้างปลั๊กอินและใช้ตัวอย่างต่อไปกับฐานข้อมูลภาพยนตร์/บทวิจารณ์

หากต้องการสร้างประเภทโพสต์ที่กำหนดเอง คุณจะต้องเขียนฟังก์ชันต่างๆ ที่เรียกใช้ฟังก์ชัน WordPress ที่เรียกว่า register_post_type()ด้วยสองพารามิเตอร์ ฟังก์ชั่นของคุณ ควรผูกพันกับเบ็ดการกระทำ เริ่มต้นมิฉะนั้นประเภทการโพสต์แบบกำหนดเองจะไม่ได้รับการลงทะเบียนอย่างถูกต้อง

// ฟังก์ชั่นที่กำหนดเองจะต้องเชื่อมต่อกับ init action hook add_action("init", "lc_register_movie_post_type"); // ฟังก์ชันแบบกำหนดเองที่เรียกใช้ฟังก์ชัน register_post_type lc_register_movie_post_type() ( // ตั้งค่าส่วนต่างๆ ของข้อความ $labels ถูกใช้ภายในอาร์เรย์ $args $labels = array("name" => _x("Movies", "post type General) name"), "singular_name" => _x("Movie", "post type singular name"), ...); // ตั้งค่าข้อมูลต่างๆ เกี่ยวกับประเภทโพสต์ $args = array("labels" => $ label, "description" => "ประเภทโพสต์ที่กำหนดเองของฉัน", "public" => true, ...); // ลงทะเบียนประเภทโพสต์ภาพยนตร์ด้วยข้อมูลทั้งหมดที่มีอยู่ใน $arguments array register_post_type("movie", $ หาเรื่อง);

ฟังก์ชันที่กำหนดเองทั้งหมดจะต้องนำหน้าเพื่อหลีกเลี่ยงความขัดแย้งกับปลั๊กอินหรือฟังก์ชันธีมอื่นๆ คำนำหน้า LC จะถูกใช้ที่นี่

พารามิเตอร์สองตัวสำหรับฟังก์ชัน register_post_type()นี้:

  1. ชื่อประเภทบันทึก ความยาวสูงสุด 20 ตัวอักษร และต้องไม่มีการเว้นวรรคหรืออักษรตัวพิมพ์ใหญ่
  2. อาร์เรย์เชื่อมโยงที่เรียกว่า $argsซึ่งมีข้อมูลเกี่ยวกับประเภทบันทึกในรูปแบบของคู่คีย์-ค่า 'คีย์' => 'มูลค่า'

อาร์เรย์ $args

คีย์ที่ใช้บ่อยที่สุดสำหรับอาร์เรย์ $argsที่แสดงด้านล่าง ทั้งหมดเป็นทางเลือก:

  • ฉลาก– อาร์เรย์ อาร์เรย์ซึ่งระบุส่วนต่างๆ ของข้อความ เช่น "เพิ่มรายการใหม่" สามารถเปลี่ยนชื่อเป็น "เพิ่มภาพยนตร์ใหม่" ได้ คีย์สำหรับอาร์เรย์ป้ายกำกับมีคำอธิบายอยู่ด้านล่างพร้อมคำอธิบาย
  • คำอธิบาย– คำอธิบายสั้นและกระชับของประเภทบันทึก สามารถแสดงในเทมเพลตประเภทได้ แต่ไม่ได้ใช้ที่อื่น
  • สาธารณะ– เป็นประเภทโพสต์ที่ผู้เขียนและผู้เยี่ยมชมมองเห็นได้ ค่าเริ่มต้นคือ FALSE ซึ่งหมายความว่าจะไม่ปรากฏแม้แต่ในคอนโซลผู้ดูแลระบบ
  • ไม่รวม_จาก_การค้นหา– ไม่ว่าบันทึกประเภทนี้จะปรากฏในผลการค้นหาปกติหรือไม่ ค่าเริ่มต้นจะตรงกันข้ามกับสาธารณะ
  • publicly_queryable– สามารถเรียกดูโพสต์ประเภทนี้ได้โดยใช้ URL เช่น http://www.mywebsite.com/?post_type=movie หรือใช้งานขั้นสูงผ่านฟังก์ชัน query_posts() ค่าเริ่มต้นคือสาธารณะ
  • show_ui– ไม่ว่าลิงก์เมนูและตัวแก้ไขข้อความจะเชื่อมต่ออยู่ในแผงควบคุมของผู้ดูแลระบบหรือไม่ ค่าเริ่มต้นคือสาธารณะ
  • show_in_nav_เมนู– ไม่ว่ารายการประเภทนี้จะถูกเพิ่มลงในเมนูการนำทางที่สร้างขึ้นในหน้าลักษณะ -> เมนูหรือไม่ ค่าเริ่มต้นจะเป็นสาธารณะ
  • show_in_menu– ไม่ว่าลิงค์ประเภทโพสต์จะแสดงในการนำทางของคอนโซลผู้ดูแลระบบหรือไม่ FALSE – ซ่อนลิงก์ TRUE – เพิ่มลิงก์เป็นลิงก์ระดับบนสุดใหม่ การป้อนบรรทัดทำให้คุณสามารถวางลิงก์ภายในลิงก์ระดับบนสุดที่มีอยู่ ซึ่งก็คือ ป้อนพารามิเตอร์ ตัวเลือก-general.phpวางไว้ใต้ลิงก์การตั้งค่า
  • show_in_admin_bar– โพสต์ประเภทนี้จะปรากฏเหนือแถบผู้ดูแลระบบใต้ลิงก์หรือไม่ +ใหม่
  • เมนู_ตำแหน่ง– ตำแหน่งของลิงก์ใหม่ในเมนูนำทางของคอนโซลผู้ดูแลระบบ 5 อยู่ด้านล่างโพสต์ 100 อยู่ด้านล่างการตั้งค่า รายการตำแหน่งทั้งหมดสามารถพบได้ใน WordPress Codex
  • ลำดับชั้น– กำหนดเรคคอร์ดให้กับเรคคอร์ดพาเรนต์ได้หรือไม่ หากค่าเป็น TRUE ให้เลือกอาร์เรย์ $สนับสนุนต้องมีพารามิเตอร์ 'page-attributes'
  • รองรับ– เลือกเปิดใช้งานฟังก์ชันการโพสต์ เช่น: รูปภาพ ส่วนของข้อความ ฟิลด์ที่กำหนดเอง ฯลฯ หากตั้งค่าเป็น FALSE ตัวแก้ไขสำหรับโพสต์ประเภทนี้จะถูกปิดแทนอาร์เรย์ - มีประโยชน์หากคุณต้องการปิดโพสต์ทั้งหมดของสิ่งนี้ พิมพ์จากการแก้ไขแต่ปล่อยให้มองเห็นได้ (รายการค่าอาร์เรย์ nee)
  • อนุกรมวิธาน– อาร์เรย์ของอนุกรมวิธานที่สามารถนำไปใช้กับสิ่งพิมพ์ประเภทนี้ อนุกรมวิธานจะต้องได้รับการลงทะเบียนแล้ว - พวกเขาไม่ได้สร้างจากที่นี่!
  • has_archive– โพสต์ประเภทนี้จะมีหน้าเก็บถาวรหรือไม่, URL มีโครงสร้างลิงก์ถาวรและส่วนที่อธิบายของ URL คือพารามิเตอร์ 1 ของฟังก์ชัน register_post_types() นั่นคือ http://www.mywebsite.com/movie_reviews/ จะแสดง กระทู้ movie_review ทั้งหมด
  • query_var– TRUE หรือ FALSE กำหนดว่าโพสต์สามารถแสดงได้หรือไม่โดยการสอบถาม URL ด้วยประเภทโพสต์และชื่อโพสต์ เช่น 'http://www.mywebsite.com/? ภาพยนตร์=เมทริกซ์- หากคุณป้อนบรรทัดข้อความ คุณต้องวางข้อความไว้หลังอักขระ ? ดังนั้น 'film' จะมีลักษณะดังนี้ '? ฟิล์ม=เมทริกซ์‘.

อาร์เรย์ของป้ายกำกับ

คีย์แรกในอาร์เรย์ $argsเรียกว่า ฉลากและต้องเป็นอาร์เรย์ ระบุส่วนต่างๆ ของข้อความที่เกี่ยวข้องกับประเภทโพสต์ เนื่องจากอาจมีข้อมูลจำนวนมากที่นี่ วิธีที่ดีที่สุดคือสร้างอาร์เรย์ที่เรียกว่า $ป้ายกำกับเพื่อการจัดเก็บของพวกเขา โค้ดด้านบนทำให้ชัดเจนขึ้นเล็กน้อยว่าหมายถึงอะไร

ด้านล่างนี้คือคีย์สำคัญบางส่วนสำหรับอาร์เรย์ป้ายกำกับ ซึ่งทั้งหมดเป็นทางเลือก:

  • ชื่อ– ชื่อทั่วไปสำหรับประเภทข้อความ เช่น ภาพยนตร์ (ภาพยนตร์)
  • เอกพจน์_ชื่อ– ชื่อหนึ่งรายการประเภทนี้ เช่น ภาพยนตร์ (movie)
  • เพิ่ม_ใหม่– แทนที่ข้อความ 'เพิ่มใหม่' ด้วยข้อความที่ระบุ เช่น 'เพิ่มภาพยนตร์'
  • add_new_item– แทนที่ 'เพิ่มโพสต์ใหม่' เช่น ด้วย 'เพิ่มภาพยนตร์ใหม่'
  • แก้ไข_รายการ– แทนที่ 'แก้ไขโพสต์' เช่น ด้วย 'แก้ไขภาพยนตร์'
  • เด่น_รูปภาพ– การแทนที่ 'รูปภาพเด่น' ในเครื่องมือแก้ไขโพสต์ เช่น ด้วย 'โปสเตอร์ภาพยนตร์'
  • set_featured_image– แทนที่ 'ตั้งค่ารูปภาพเด่น' ด้วยตัวเลือกนี้ 'เพิ่มโปสเตอร์ภาพยนตร์'
  • เมนู_ชื่อ– เปลี่ยนข้อความลิงค์ที่ระดับบนสุด ข้อความลิงค์เริ่มต้นคือชื่อคีย์

รองรับอาร์เรย์

// เปิดใช้งานคุณสมบัติเฉพาะในตัวแก้ไขบทความสำหรับประเภทโพสต์ของฉัน $supports = array ("title", "editor", "author", "thumbnail"); // ปิดการใช้งานคุณสมบัติทั้งหมดของเครื่องมือแก้ไขบทความสำหรับประเภทโพสต์ของฉัน $supports = FALSE;

หนึ่งในคีย์ในอาร์เรย์ $argsเรียกว่า รองรับ- นี่เป็นอาร์เรย์แบบง่ายที่คุณบันทึกรายการคุณลักษณะของเครื่องมือแก้ไขโพสต์ที่คุณต้องการเปิดใช้งานสำหรับประเภทโพสต์ของคุณ ตามค่าเริ่มต้น จะมีการเปิดใช้งานเฉพาะชื่อเรื่องและตัวแก้ไขเท่านั้น

คุณยังสามารถตั้งค่า FALSE แทนอาร์เรย์เพื่อปิดใช้งานฟังก์ชันตัวแก้ไขทั้งหมด โดยปิดทั้งชื่อและพื้นที่การเพิ่มเนื้อหา ซึ่งหมายความว่ารายการไม่สามารถแก้ไขได้ แต่ยังคงมองเห็นได้ทั้งหมด

นี่คือรายการฟังก์ชันที่คุณสามารถรวมไว้ในอาร์เรย์ได้ $สนับสนุน:

  • ชื่อ (ชื่อ)
  • บรรณาธิการ
  • ผู้เขียน – หมายเหตุ: สิ่งนี้ช่วยให้คุณสามารถเปลี่ยนผู้เขียนโพสต์ได้
  • ภาพขนาดย่อ (ไอคอน)
  • ข้อความที่ตัดตอนมา (ส่วนของข้อความ)
  • แทร็กแบ็ค
  • ฟิลด์ที่กำหนดเอง (ฟิลด์ที่กำหนดเอง)
  • ความคิดเห็น
  • การแก้ไข (เวอร์ชัน)
  • แอตทริบิวต์หน้า
  • โพสต์รูปแบบ (รูปแบบโพสต์)

การสร้างประเภทโพสต์ WordPress แบบกำหนดเองผ่านปลั๊กอิน

ตอนนี้เรารู้พารามิเตอร์ที่ฟังก์ชันต้องการแล้ว เราสามารถสร้างปลั๊กอินของเราเอง เขียนฟังก์ชันของเราเอง และแนบไปกับเหตุการณ์ได้ เริ่มต้น.

lc_custom_post_movie()ไปที่ init action hook add_action("init", "lc_custom_post_movie"); // ฟังก์ชันแบบกำหนดเองเพื่อลงทะเบียนฟังก์ชันประเภทโพสต์ภาพยนตร์ lc_custom_post_movie() ( // ตั้งค่าป้ายกำกับ ตัวแปรนี้ใช้ในอาร์เรย์ $args $labels = array("name" => __("Movies"), "singular_name " => __("ภาพยนตร์"), "add_new" => __("เพิ่มภาพยนตร์ใหม่"), "add_new_item" => __("เพิ่มภาพยนตร์ใหม่"), "edit_item" => __("แก้ไขภาพยนตร์") , "new_item" => __("ภาพยนตร์ใหม่"), "all_items" => __("ภาพยนตร์ทั้งหมด"), "view_item" => __("ดูภาพยนตร์"), "search_items" => __("ค้นหาภาพยนตร์ "), "featured_image" => "Poster", "set_featured_image" => "Add Poster"); // อาร์กิวเมนต์สำหรับประเภทโพสต์ของเราที่จะป้อนเป็นพารามิเตอร์ 2 ของ register_post_type() $args = array("labels" => $labels, "description" => "เก็บข้อมูลภาพยนตร์และภาพยนตร์ของเราโดยเฉพาะ", "public" => true, "menu_position" => 5, "supports" => array("title", "editor", " ภาพย่อ", "ข้อความที่ตัดตอนมา", "ความคิดเห็น", "ฟิลด์ที่กำหนดเอง"), "has_archive" => true, "show_in_admin_bar" => true, "show_in_nav_menus" => true, "has_archive" => true, "query_var" = > "film"); // เรียกใช้ฟังก์ชัน WordPress จริง // พารามิเตอร์ 1 คือชื่อสำหรับประเภทการโพสต์ // พารามิเตอร์ 2 คือ $args array register_post_type("movie", $args); ) // ฮุก lc_custom_post_movie_reviews()ไปยังการดำเนินการเริ่มต้น hook add_action("init", "lc_custom_post_movie_reviews"); // ฟังก์ชันแบบกำหนดเองเพื่อลงทะเบียนฟังก์ชันประเภทโพสต์บทวิจารณ์ภาพยนตร์ lc_custom_post_movie_reviews() ( // ตั้งค่าป้ายกำกับ ตัวแปรนี้ใช้ใน $args array $labels = array("name" => __("Movie Reviews"), "singular_name" => __("บทวิจารณ์ภาพยนตร์"), "add_new" => __("เพิ่มบทวิจารณ์ภาพยนตร์ใหม่"), "add_new_item" => __("เพิ่มบทวิจารณ์ภาพยนตร์ใหม่"), "edit_item" => __( "แก้ไขบทวิจารณ์ภาพยนตร์"), "new_item" => __("บทวิจารณ์ภาพยนตร์ใหม่"), "all_items" => __("บทวิจารณ์ภาพยนตร์ทั้งหมด"), "view_item" => __("ดูบทวิจารณ์ภาพยนตร์"), " search_items" => __("ค้นหาบทวิจารณ์ภาพยนตร์")); // อาร์กิวเมนต์สำหรับประเภทโพสต์ของเราที่จะป้อนเป็นพารามิเตอร์ 2 ของ register_post_type() $args = array("labels" => $labels, "description" = > "เก็บบทวิจารณ์ภาพยนตร์ของเรา", "สาธารณะ" => true, "menu_position" => 6, "supports" => array("title", "editor", "thumbnail", "excerpt", "comments", " custom-fields"), "has_archive" => true, "show_in_admin_bar" => true, "show_in_nav_menus" => true, "has_archive" => true); // เรียกใช้ฟังก์ชัน WordPress จริง // พารามิเตอร์ 1 เป็นชื่อของ ประเภทการโพสต์ // $args array อยู่ในพารามิเตอร์ 2. register_post_type("review", $args); -

หากคุณเปิดใช้งานปลั๊กอินนี้ คุณจะเห็นลิงก์ใหม่ในแถบนำทางของคอนโซลผู้ดูแลระบบ ถัดจากลิงก์ "โพสต์"

เมื่อเลื่อนเมาส์ รายการเมนู 'ดูทั้งหมด' และ 'เพิ่มใหม่' จะปรากฏขึ้น ข้อความจะสอดคล้องกับสิ่งที่ระบุไว้ในอาร์เรย์ $ป้ายกำกับ- ดูในตัวแก้ไขที่ลิงก์มีการเปลี่ยนแปลง

จำกัดฟิลด์ที่กำหนดเองสำหรับบันทึกที่กำหนด

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

get_post_meta()

  • รับ 3 พารามิเตอร์และ ผลตอบแทนผลลัพธ์
  • พารามิเตอร์แรกคือรหัสโพสต์ คุณสามารถใช้ได้ที่นี่ $โพสต์->ไอดีเพื่อรับ ID ของรายการที่แสดงอยู่ในปัจจุบัน
  • พารามิเตอร์ที่สอง – ชื่อของฟิลด์เรกคอร์ดที่กำหนดเอง คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
  • พารามิเตอร์ที่สามเป็นประเภทบูลีนที่เรียกว่า $เดียวและสามารถเป็น TRUE (ส่งคืนผลลัพธ์เป็นสตริง) หรือ FALSE (ส่งคืนอาร์เรย์)

บันทึก:คุณสามารถสร้างฟิลด์ที่กำหนดเองได้หลายฟิลด์ด้วยชื่อเดียวกันและค่าที่แตกต่างกัน หากมีหลายช่องที่มีชื่อเหมือนกัน การตั้งค่า FALSE จะส่งกลับอาร์เรย์ของช่องเหล่านั้น

ID, "ศิลปะกล่อง", TRUE); ถ้า (!empty($movie_box_art)) ( ?>
" alt="(!ภาษา: !}">

ตั้งแต่ฟังก์ชั่น get_post_meta()ส่งกลับค่า คุณสามารถใช้ค่าในนิพจน์แบบมีเงื่อนไขเพื่อเปลี่ยนลักษณะที่ปรากฏได้

ในตัวอย่างด้านบน เราจะตรวจสอบว่าภาพยนตร์มีภาพหน้าปกกล่องที่กำหนดให้เป็นฟิลด์ที่กำหนดเองหรือไม่ ถ้า $movie_box_artไม่ว่างเปล่า แสดง div และรูปภาพ

การแสดงฟิลด์แบบกำหนดเองขั้นสูง

// แสดงค่าฟิลด์ the_field("FIELD NAME"); // ส่งคืนค่าฟิลด์ get_field ("FIELD NAME");

ปลั๊กอิน Advanced Custom Fields มีฟังก์ชันและรหัสย่อสำหรับการแสดงฟิลด์

the_field('ชื่อสนาม');

แสดงค่าของฟิลด์ที่ระบุ คุณต้องใช้ชื่อฟิลด์ที่คุณระบุเมื่อสร้างกลุ่มฟิลด์

get_field('ชื่อสนาม');

ส่งคืนค่าของฟิลด์ที่ระบุ ซึ่งมีประโยชน์สำหรับนิพจน์แบบมีเงื่อนไข

นี่คือคุณสมบัติที่คุณน่าจะต้องการมากที่สุด มีคุณสมบัติเพิ่มเติมมากมายและคุณสามารถค้นหาได้ใน

รหัสย่อ

คุณสามารถแสดงฟิลด์บนโพสต์ได้โดยตรงโดยใช้รหัสย่อด้านบน

แสดงประเภทโพสต์ที่กำหนดเองบนหน้าหลัก

// ขอฟังก์ชันที่กำหนดเองของเราไปที่ pre_get_posts action hook add_action("pre_get_posts", "add_reviews_to_frontpage"); // แก้ไขฟังก์ชันการสืบค้นหลัก add_reviews_to_frontpage($query) ( if (is_home() && $query->is_main_query()) ( $query->set("post_type", array("post", "movie", "review) ")); ) ส่งคืน $ แบบสอบถาม; )

ประเภทโพสต์ที่กำหนดเองจะไม่แสดงบนหน้าหลักตามค่าเริ่มต้น ดังนั้นคุณต้องสร้างฟังก์ชันใหม่ที่เรียกเมธอด set ของออบเจ็กต์ WP_Queryเวิร์ดเพรส.

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

$แบบสอบถาม->ชุด()รับสองพารามิเตอร์:

  • พารามิเตอร์แรกคือลำดับความสำคัญที่คุณต้องการเปลี่ยน ในกรณีของเราเราเปลี่ยนลำดับความสำคัญ post_type
  • พารามิเตอร์ตัวที่สองคืออาร์เรย์ที่คุณต้องการส่งผ่านเป็นค่าแอตทริบิวต์ post_type

ในตัวอย่างโค้ดด้านบน อาร์เรย์จะขึ้นต้นด้วย 'post' ด้วยเหตุนี้โพสต์ WordPress ทุกรายการจึงเป็นประเภท 'post' และเรายังคงต้องการรวมไว้ในหน้าหลัก

หากคุณต้องการใช้โพสต์แบบกำหนดเองประเภทที่กำหนดบนหน้าแรกของคุณ คุณสามารถลบ 'โพสต์' และใช้ประเภทโพสต์ของคุณเองได้

ค่าที่คุณป้อนจะต้องตรงกับพารามิเตอร์ 1 ของฟังก์ชัน register_post_type().

บทสรุป

ในบทช่วยสอนนี้ เราจะแสดงวิธีสร้างประเภทที่กำหนดเองและข้อมูลที่คุณต้องใช้ในการดำเนินการดังกล่าว ความยืดหยุ่นของประเภทโพสต์แบบกำหนดเองทำให้มีฟังก์ชันการทำงานที่มีคุณค่าสำหรับไซต์ WordPress ใดๆ

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

| ดาวน์โหลดแหล่งที่มา |

ประเภทโพสต์ที่กำหนดเองคืออะไร?

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

ประเภทโพสต์ที่กำหนดเอง- ชุดการตั้งค่าการดูแลระบบใหม่ที่ใช้ควบคู่กับประเภทมาตรฐานเช่น กระทู้, หน้า, ไฟล์แนบและอื่น ๆ ประเภทโพสต์ที่กำหนดเองสามารถจัดเก็บข้อมูลประเภทใดก็ได้ มีโปรแกรมแก้ไขและตัวโหลดสื่อของตัวเอง ใช้โครงสร้างตาราง WordPress ที่มีอยู่เพื่อการจัดการข้อมูลได้ง่าย ประโยชน์หลักของการสร้างประเภทโพสต์แบบกำหนดเองโดยใช้ เวิร์ดเพรส เอพีไอ- ใช้งานง่ายกับธีมและเทมเพลตที่มีอยู่ ประเภทโพสต์ที่กำหนดเองด้วย เป็นมิตรกับ SEOเนื่องจากลิงก์ถาวรของมัน

เหตุใดจึงต้องใช้ประเภทโพสต์ที่กำหนดเอง

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

ตัวอย่างการสร้างปลั๊กอินประเภทโพสต์แบบกำหนดเอง

ที่นี่เราจะสร้างปลั๊กอินเพื่อแสดงโพสต์ประเภทใหม่ที่จะแสดงบทวิจารณ์ภาพยนตร์ของเรา มาเริ่มกันเลย

ขั้นตอนที่ 1 สร้างโฟลเดอร์ปลั๊กอิน WordPress

เปิดโฟลเดอร์ปลั๊กอิน WordPress ของคุณและสร้างโฟลเดอร์ใหม่ที่เรียกว่า บทวิจารณ์ภาพยนตร์.

ขั้นตอนที่ 2 สร้างไฟล์ PHP

เปิดโฟลเดอร์และสร้าง PHPไฟล์ที่เรียกว่า ภาพยนตร์-Reviews.php.

ขั้นตอนที่ 3 เพิ่มส่วนหัว

เปิดไฟล์และเพิ่มโค้ดส่วนหัวของปลั๊กอิน

ก่อนสั่งปิด. PHPให้ป้อนบรรทัดโค้ดต่อไปนี้เพื่อเรียกใช้ฟังก์ชันแบบกำหนดเองตามชื่อ create_movie_reviewเมื่อเริ่มต้นทุกครั้งที่สร้างเพจ

Add_action("init", "create_movie_review");

ขั้นตอนที่ 5 ดำเนินการฟังก์ชัน

ดำเนินการฟังก์ชัน create_movie_review:

ฟังก์ชั่น create_movie_review() ( register_post_type("movie_reviews", array("labels" => array("name" => "Movie Reviews", "singular_name" => "Movie Review", "add_new" => "Add New", "add_new_item" => "เพิ่มบทวิจารณ์ภาพยนตร์ใหม่", "edit" => "แก้ไข", "edit_item" => "แก้ไขบทวิจารณ์ภาพยนตร์", "new_item" => "บทวิจารณ์ภาพยนตร์ใหม่", "view" => "ดู ", "view_item" => "ดูบทวิจารณ์ภาพยนตร์", "search_items" => "ค้นหาบทวิจารณ์ภาพยนตร์", "not_found" => "ไม่พบบทวิจารณ์ภาพยนตร์", "not_found_in_trash" => "ไม่พบบทวิจารณ์ภาพยนตร์ในถังขยะ", "parent" => "บทวิจารณ์ภาพยนตร์ของผู้ปกครอง"), "public" => true, "menu_position" => 15, "supports" => array("title", "editor", "comments", "thumbnail", " ฟิลด์ที่กำหนดเอง"), "taxonomies" => array(""), "menu_icon" => Plugins_url("images/image.png", __FILE__), "has_archive" => true)); )

การทำงาน register_post_typeทำงานส่วนใหญ่ให้เรา เมื่อถูกเรียก จะเตรียมสภาพแวดล้อม WordPress สำหรับประเภทโพสต์ที่กำหนดเองใหม่ รวมถึงส่วนต่างๆ ของผู้ดูแลระบบ ชิ้นส่วน

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

ข้อโต้แย้ง:

  • "สาธารณะ" => จริง- กำหนดการมองเห็นประเภทโพสต์ที่กำหนดเองทั้งในแผงผู้ดูแลระบบและในส่วนของลูกค้า
  • "menu_position" => 15- ระบุรายการเมนูสำหรับประเภทรายการที่กำหนดเอง
  • "รองรับ" => อาร์เรย์ ("ชื่อเรื่อง", "บรรณาธิการ", "ความคิดเห็น", "ภาพขนาดย่อ", "ฟิลด์ที่กำหนดเอง") - กำหนดลักษณะของประเภทโพสต์แบบกำหนดเองที่จะแสดง
  • "taxonomies" => อาร์เรย์ (" ")- สร้างอนุกรมวิธานที่กำหนดเอง พวกเขาไม่ได้กำหนดไว้ที่นี่
  • "menu_icon" => Plugins_url("images/image.png", __ไฟล์__ ) - แสดงไอคอนเมนูผู้ดูแลระบบ
  • "has_archive" => จริง- เปิดใช้งานการเก็บถาวรประเภทโพสต์ที่กำหนดเอง

ในหน้า WordPress Codex เกี่ยวกับคุณสมบัตินี้ register_post_typeคุณสามารถอ่านเพิ่มเติมเกี่ยวกับข้อโต้แย้งที่ใช้ในประเภทโพสต์ที่กำหนดเองได้

ขั้นตอนที่ 6 ไอคอนสำหรับประเภทโพสต์แบบกำหนดเอง

บันทึกขนาดไอคอน 16 x 16 พิกเซลไปยังโฟลเดอร์ปลั๊กอินปัจจุบันของคุณ นี่เป็นสิ่งจำเป็นสำหรับไอคอนประเภทโพสต์แบบกำหนดเองในคอนโซล

ขั้นตอนที่ 7 เปิดใช้งานปลั๊กอิน

เปิดใช้งานปลั๊กอินและ presto คุณจะมีประเภทโพสต์แบบกำหนดเองใหม่ที่มีโปรแกรมแก้ไขข้อความ การจัดการโพสต์และรูปภาพ ความคิดเห็น และโปรแกรมแก้ไขฟิลด์แบบกำหนดเอง

ขั้นตอนที่ 8: เพิ่มรายการใหม่

คลิกที่ เพิ่มใหม่เพื่อไปที่เครื่องมือแก้ไขประเภทโพสต์ที่กำหนดเอง เขียนชื่อภาพยนตร์ บทวิจารณ์ และภาพขนาดย่อสำหรับรายการ

ขั้นตอนที่ 9: การเผยแพร่

เผยแพร่โพสต์ของคุณแล้วคลิก ดูบทวิจารณ์ภาพยนตร์เพื่อดูบทวิจารณ์ภาพยนตร์ที่สร้างขึ้น

การสร้างฟิลด์ Meta Box สำหรับประเภทโพสต์ที่กำหนดเอง

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

ขั้นตอนที่ 1: ลงทะเบียนฟังก์ชันแบบกำหนดเอง

เปิดไฟล์ ภาพยนตร์-Reviews.phpและเพิ่มโค้ดต่อไปนี้ก่อนปิด PHPแท็ก นี่เป็นการลงทะเบียนฟังก์ชันที่จะถูกเรียกเมื่อมีการเยี่ยมชมอินเทอร์เฟซผู้ดูแลระบบ WordPress

Add_action("admin_init", "my_admin");

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

เพิ่มการดำเนินการฟังก์ชัน my_adminซึ่งลงทะเบียนเมตาบล็อกและเชื่อมโยงกับประเภทโพสต์ที่กำหนดเอง ภาพยนตร์_บทวิจารณ์.

ฟังก์ชั่น my_admin() ( add_meta_box("movie_review_meta_box", "รายละเอียดบทวิจารณ์ภาพยนตร์", "display_movie_review_meta_box", "movie_reviews", "normal", "high"); )

นี่คือฟังก์ชั่น add_meta_boxใช้เพื่อเพิ่มบล็อกเมตาให้กับประเภทโพสต์ที่กำหนดเอง

คุณสมบัติ:

  • movie_review_meta_box- แอตทริบิวต์ HTML ที่จำเป็น รหัส.
  • รายละเอียดการวิจารณ์ภาพยนตร์- ข้อความที่มองเห็นได้ที่ด้านบนของเมตาบล็อก
  • display_movie_review_meta_box- โทรกลับที่แสดงเนื้อหาของเมตาบล็อก
  • ภาพยนตร์_บทวิจารณ์คือชื่อของประเภทโพสต์แบบกำหนดเองที่เมตาบล็อกจะปรากฏขึ้น
  • ปกติ- กำหนดส่วนของเพจที่ควรแสดงบล็อกการแก้ไข
  • สูง- กำหนดลำดับความสำคัญในบริบทที่จะแสดงบล็อก

ขั้นตอนที่ 3: ดำเนินการฟังก์ชัน display_movie_review_meta_box

ID, "movie_director", จริง));
$movie_rating = intval(get_post_meta($movie_review->ID, "movie_rating", true));
ผู้กำกับภาพยนตร์

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

ขั้นตอนที่ 4: ลงทะเบียนฟังก์ชั่นบันทึกโพสต์

add_action("save_post", "add_movie_review_fields", 10, 2);

ฟังก์ชันนี้เรียกว่าเมื่อมีการบันทึกบันทึกลงในฐานข้อมูล

ขั้นตอนที่ 5 เรียกใช้ฟังก์ชัน add_movie_review_fields

ฟังก์ชั่น add_movie_review_fields($movie_review_id, $movie_review) ( // ตรวจสอบประเภทโพสต์สำหรับบทวิจารณ์ภาพยนตร์ถ้า ($movie_review->post_type == "movie_reviews") ( // เก็บข้อมูลในตาราง meta ของโพสต์ หากมีอยู่ในข้อมูลโพสต์ if (isset($ _POST["movie_review_director_name"]) && $_POST["movie_review_director_name"] != "") ( update_post_meta($movie_review_id, "movie_director", $_POST["movie_review_director_name"]); ) ถ้า (isset($_POST["movie_review_rating" ]) && $_POST["movie_review_rating"] != "") ( update_post_meta($movie_review_id, "movie_rating", $_POST["movie_review_rating"]); ) ) )

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

ขั้นตอนที่ 6: ปิดใช้งานฟิลด์แบบกำหนดเองมาตรฐาน

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

สร้างเทมเพลตแบบกำหนดเองสำหรับประเภทโพสต์แบบกำหนดเอง

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

ขั้นตอนที่ 1 ลงทะเบียนฟังก์ชันสำหรับเทมเพลต

เปิดไฟล์ ภาพยนตร์-Reviews.phpและเพิ่มก่อนแท็กปิด PHPรหัสต่อไปนี้ มันจะลงทะเบียนฟังก์ชั่นที่จะเรียกใช้เมื่อมีการเยี่ยมชมอินเทอร์เฟซผู้ดูแลระบบ WordPress

Add_filter("template_include", "include_template_function", 1);

ขั้นตอนที่ 2 ดำเนินการฟังก์ชัน

function include_template_function($template_path) ( if (get_post_type() == "movie_reviews") ( if (is_single()) ( // ตรวจสอบว่าไฟล์มีอยู่ในธีมก่อนหรือไม่ // มิฉะนั้นจะให้บริการไฟล์จากปลั๊กอิน if ($ theme_file = ค้นหา_เทมเพลต(array ("single-movie_reviews.php"))) ( $template_path = $theme_file; ) else ( $template_path = Plugin_dir_path(__FILE__) . "/single-movie_reviews.php"; ) ) ) ส่งคืน $template_path; )

นี่คือโค้ดที่กำลังมองหารูปแบบ single-(ชื่อประเภทโพสต์).phpในโฟลเดอร์ธีมปัจจุบัน หากไม่มีอยู่ ระบบจะค้นหาเทมเพลตที่เราระบุไว้ในโฟลเดอร์ปลั๊กอินซึ่งเป็นส่วนหนึ่งของปลั๊กอิน ตะขอ template_includeใช้เพื่อเปลี่ยนพฤติกรรมมาตรฐานและใช้รูปแบบเฉพาะ

ขั้นตอนที่ 3: สร้างไฟล์เทมเพลตหน้าเดียว

หลังจากบันทึกไฟล์ปลั๊กอินที่เปิดอยู่ ให้สร้างไฟล์ใหม่ขึ้นมา PHPไฟล์ที่เรียกว่า single-movie_reviews.phpและวางโค้ดต่อไปนี้ลงไป

"movie_reviews");$loop = WP_Query ใหม่($mypost);
>
-
have_posts()) : $loop->the_post();?>
ชื่อ: ผู้อำนวยการ: "; } } ?>

คะแนน: "; ) อื่น ๆ ( echo "ที่นี่เราสร้างขึ้น เทมเพลตหน้าพื้นฐานโดยใช้การวนซ้ำ การทำงาน query_postsรับองค์ประกอบของประเภทโพสต์ที่กำหนดเองและแสดงโดยใช้การวนซ้ำ แน่นอนว่านี่เป็นเพียงการวนซ้ำพื้นฐานและคุณสามารถเล่นได้ตามที่คุณต้องการ คุณยังสามารถใช้

ซีเอสเอสสไตล์เพื่อจัดรูปแบบองค์ประกอบ

โปรดทราบ

: คุณต้องสร้างเพจใหม่จากคอนโซลโดยใช้เทมเพลตที่คุณเพิ่งสร้างขึ้น ขั้นตอนที่ 4 รูปภาพคุณต้องบันทึกภาพไอคอนสองภาพ 32 x 32 พิกเซลและ ในโฟลเดอร์ปลั๊กอินของคุณ ตั้งชื่อพวกเขาไอคอน.png

grey.png

- เพียงเท่านี้ บทวิจารณ์ภาพยนตร์ก็จะแสดงในหน้าแยกต่างหาก เรียงตามวันที่

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

ตอนนี้ไปที่ "ห้องครัว" เพื่อเตรียมปลั๊กอินของเรา

ปล. หากคุณไม่มีความรู้เกี่ยวกับ PHP และเลย์เอาต์... ไม่ต้องกังวล ขอให้ใครสักคนเขียนฟังก์ชันที่จำเป็นให้คุณ :)

ก่อนที่คุณจะเริ่มเขียนปลั๊กอิน คุณต้องอ่านเอกสารประกอบของ WordPress ซึ่งอธิบายหลักการพื้นฐานของการเขียนปลั๊กอินและตัวอย่างโค้ดบางส่วน

ฉันจะไม่ทำซ้ำข้อมูลนี้ แต่จะย้ายไปเขียนโค้ดโดยตรงทันที

มาเขียนปลั๊กอินง่ายๆ ที่จะช่วยให้คุณสามารถบันทึกและแสดงบทวิจารณ์เกี่ยวกับไซต์ของคุณได้ แน่นอนว่ามีปลั๊กอินดังกล่าวอยู่แล้ว แต่จะใช้ได้เป็นตัวอย่าง

สิ่งแรกที่เราจะทำคือตั้งชื่อปลั๊กอินของเราให้เป็นเอกลักษณ์ - “ AdvUserรีวิว«.

ต่อไป เราจะสร้างไดเร็กทอรีใหม่ “advuserreviews” ในไดเร็กทอรีของไซต์ของคุณ “/wp-content/plugins/” และในนั้นเราจะสร้างไฟล์ “advuserreviews.php” นี่จะเป็นไฟล์หลักที่จะรับผิดชอบในการเริ่มต้นทั่วไป (ขอแนะนำให้ใช้การเข้ารหัส UTF-8 สำหรับไฟล์)

ที่จุดเริ่มต้นของไฟล์ คุณต้องระบุข้อมูลพื้นฐานเกี่ยวกับปลั๊กอิน

ตอนนี้ หากคุณไปที่แผงควบคุม คุณจะเห็นว่าระบบพบปลั๊กอินใหม่และเสนอให้เปิดใช้งาน แต่ยังเร็วเกินไปที่จะทำสิ่งนี้

เราจะเขียนปลั๊กอินใหม่ของเราในรูปแบบ OOP และการประมวลผลข้อมูลทั้งหมดจะอยู่ในไฟล์เดียว มาสร้างโครงกระดูกหลักของไฟล์กัน

// หยุดการโทรโดยตรง if(preg_match("#" . basename(__FILE__) . #", $_SERVER["PHP_SELF"])) ( die("You are notได้รับอนุญาตให้เรียกเพจนี้โดยตรง"); ) ถ้า (!class_exists("AdvUserReviews")) ( class AdvUserReviews ( // จัดเก็บข้อมูลภายใน public $data = array(); // Object Constructor // การเริ่มต้นฟังก์ชันตัวแปรหลัก AdvUserReviews() ( ) ) global $rprice; $rprice = AdvUserReviews ใหม่();

ตอนนี้เรามาเพิ่มโค้ดต่อไปนี้ให้กับตัวสร้างวัตถุ:

ฟังก์ชั่น AdvUserReviews() ( global $wpdb; // ประกาศค่าคงที่การเริ่มต้นของปลั๊กอิน DEFINE("AdvUserReviews", true); // ชื่อไฟล์ของปลั๊กอินของเรา $this->plugin_name = Plugin_basename(__FILE__); // ที่อยู่ URL สำหรับ ปลั๊กอินของเรา $ this->plugin_url = Trailingslashit(WP_PLUGIN_URL."/".dirname(plugin_basename(__FILE__))); // ตารางสำหรับจัดเก็บบทวิจารณ์ของเรา // ตัวแปร $wpdb จะต้องได้รับการประกาศทั่วโลก $this->tbl_adv_reviews = $ wpdb->คำนำหน้า . "adv_reviews"; // ฟังก์ชั่นที่จะดำเนินการเมื่อปลั๊กอินถูกเปิดใช้งาน register_activation_hook($this->plugin_name, array(&$this, "activate")); // ฟังก์ชั่นที่จะดำเนินการเมื่อมีปลั๊กอิน deactivated register_deactivation_hook($this->plugin_name, array) (&$this, "deactivate")); // ฟังก์ชั่นที่จะดำเนินการเมื่อถอนการติดตั้งปลั๊กอิน register_uninstall_hook($this->plugin_name, array(&$this, "uninstall") );

ในตัวสร้างวัตถุเราใช้ 3 “hooks” หรือ “hooks” (มันคืออะไร?): register_activation_hook, register_deactivation_hookและ register_uninstall_hook- ฟังก์ชั่นเหล่านี้คือฟังก์ชั่นที่จะดำเนินการเมื่อมีการเปิดใช้งาน ปิดใช้งาน และลบปลั๊กอิน ตามลำดับ

ทีนี้ลองใช้ฟังก์ชันเหล่านี้โดยตรง

/** * เปิดใช้งานปลั๊กอิน */ function activate() ( global $wpdb; need_once(ABSPATH . "wp-admin/upgrade-functions.php"); $table = $this->tbl_adv_reviews; // กำหนดเวอร์ชัน mysql if ( version_compare(mysql_get_server_info(), "4.1.0", ">=")) ( if (! Empty($wpdb->charset)) $charset_collate = "ชุดอักขระเริ่มต้น $wpdb->ชุดอักขระ"; if (! Empty( $wpdb->collate)) $charset_collate .= "COLLATE $wpdb->collate"; ) // โครงสร้างของตารางของเราสำหรับการวิจารณ์ $sql_table_adv_reviews = " CREATE TABLE `".$wpdb->prefix"adv_reviews` ( `ID` INT (10) ไม่ได้ลงนาม NULL AUTO_INCREMENT, `review_title` VARCHAR (255) ไม่เป็น NULL ค่าเริ่มต้น "0", `review_text` ข้อความไม่เป็น NULL, `review_date` ประทับเวลา ไม่เป็น NULL เริ่มต้น CURRENT_TIMESTAMP, `review_user_name` VARCHAR (200) NULL, `review_user_email` VARCHAR(200) NULL, PRIMARY KEY (`ID`))".$charset_collate";"; // ตรวจสอบการมีอยู่ของตาราง if ($wpdb->get_var("show tables like "".$table. """ ) != $table) ( dbDelta($sql_table_adv_reviews); ) ) /** * ปิดการใช้งานปลั๊กอิน */ function deactivate() ( return true; ) /** * การลบปลั๊กอิน */ ฟังก์ชันถอนการติดตั้ง() ( global $wpdb; $wpdb->query("DROP TABLE IF EXISTS ($wpdb->prefix)adv_reviews"); )

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

ดังนั้น เมื่อเปิดใช้งานปลั๊กอิน โครงสร้างตารางจะถูกสร้างขึ้นเพื่อจัดเก็บบทวิจารณ์ เมื่อปิดใช้งานปลั๊กอิน จะไม่มีการดำเนินการใดๆ เกิดขึ้น แต่เมื่อถูกลบ เราจะลบตารางของเรา การดำเนินการสามารถเข้าใจได้โดยละเอียดยิ่งขึ้นจากซอร์สโค้ด

โครงสร้างพื้นฐานของปลั๊กอินใหม่พร้อมแล้ว ตอนนี้เราต้องเริ่มเขียนส่วนที่ใช้งานได้ เมื่อต้องการทำเช่นนี้ เราจำเป็นต้องเพิ่มบรรทัดของโค้ดต่อไปนี้ลงในตัวสร้างคลาส:

// ถ้าเราอยู่ในแอดมิน. อินเทอร์เฟซ if (is_admin()) ( // เพิ่มสไตล์และสคริปต์ add_action("wp_print_scripts", array(&$this, "admin_load_scripts")); add_action("wp_print_styles", array(&$this, "admin_load_styles"); // เพิ่มเมนูสำหรับปลั๊กอิน add_action("admin_menu", array(&$this, "admin_generate_menu")); else ( // เพิ่มสไตล์และสคริปต์ add_action("wp_print_scripts", array(&$this, "site_load_scripts") ); add_action("wp_print_styles", array(&$this, "site_load_styles")); add_shortcode("show_reviews", array (&$this, "site_show_reviews"));

มาดูรายละเอียดโค้ดส่วนนี้กันดีกว่า เริ่มจากแผงการบริหารกันก่อน
การทำงาน " is_admin» ตรวจสอบในโหมดที่เรากำลังทำงานอยู่ - บนเว็บไซต์หรือในแผงควบคุม
ถัดไปมีการใช้ hook หลายอันสำหรับฟังก์ชั่น:

  • wp_print_scripts- เพิ่มไฟล์จาวาสคริปต์ที่จำเป็น
  • wp_print_styles- เพิ่มสไตล์ที่จำเป็น
  • admin_menu- การเพิ่มเมนูใหม่ให้กับแผงควบคุม

แต่ละ hook สอดคล้องกับวิธีการนำไปใช้ในชั้นเรียนของเรา ซึ่งมีการดำเนินการที่จำเป็น
มาดูโค้ดสำหรับเชื่อมต่อสไตล์และสคริปต์กัน

/** * กำลังโหลดสคริปต์ที่จำเป็นสำหรับหน้าการจัดการ * ในแผงการดูแลระบบ */ ฟังก์ชั่น admin_load_scripts() ( // ลงทะเบียนสคริปต์ wp_register_script("advReviewsAdminJs", $this->plugin_url . "js/admin-scripts.js") ; wp_register_script( "jquery", $this->plugin_url . "js/jquery-1.4.2.min.js"); // เพิ่มสคริปต์ไปที่หน้า wp_enqueue_script("advReviewsAdminJs"); สไตล์ที่จำเป็นสำหรับหน้าควบคุม * ในแผงการดูแลระบบ */ ฟังก์ชั่น admin_load_styles() ( // ลงทะเบียนสไตล์ wp_register_style("advReviewsAdminCss", $this->plugin_url . "css/admin-style.css"); // เพิ่มสไตล์ wp_enqueue_style( "advReviewsAdminCss");

ที่นี่ใช้ฟังก์ชันต่อไปนี้

การกระทำแต่ละรายการขึ้นอยู่กับพารามิเตอร์ที่ส่งผ่าน "การกระทำ" ตามลำดับ "แก้ไข" - แก้ไขบทวิจารณ์ "ส่ง" - บันทึกบทวิจารณ์ที่แก้ไข และ "ลบ" - การลบบทวิจารณ์

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

นี่คือจุดที่เราจะจบแผงการดูแลระบบและไปยังการแสดงและเพิ่มบทวิจารณ์จากผู้ใช้

เพื่อบอก WordPress เมื่อใดที่จะเรียกปลั๊กอินของเรา เราจำเป็นต้องลงทะเบียน “รหัสย่อ” ซึ่งเป็นสิ่งที่ทำใน Constructor ของคลาสของเรา อ่านเพิ่มเติมเกี่ยวกับเรื่องนี้

Add_shortcode("show_reviews", array (&$this, "site_show_reviews"));

ตอนนี้คุณสามารถวางโค้ดต่อไปนี้บนหน้าใดก็ได้ของไซต์ และมันจะบังคับให้ฟังก์ชันที่เราระบุ (ส่งผ่านเป็นพารามิเตอร์ตัวที่สอง) ดำเนินการ ด้านล่างนี้เป็นซอร์สโค้ดสำหรับฟังก์ชันนี้

/** * รายการบทวิจารณ์บนเว็บไซต์ */ ฟังก์ชั่นสาธารณะ site_show_reviews($atts, $content=null) ( global $wpdb; if (isset($_POST["action"]) && $_POST["action"] = = " add-review") ( $this->add_user_review(); ) // เลือกบทวิจารณ์ทั้งหมดจากฐานข้อมูล $this->data["reviews"] = $wpdb->get_results("SELECT * FROM `" . $ นี้- >tbl_adv_reviews . "`", ARRAY_A); ## เปิดใช้งานการบัฟเฟอร์เอาต์พุต ob_end_clean (); ) ฟังก์ชั่นส่วนตัว add_user_review() ( global $wpdb; $inputData = array("review_title" => strip_tags($_POST["review_title"]), "review_text" => strip_tags($_POST["review_text"]), " review_user_name " => strip_tags($_POST["review_user_name"]), "review_user_email" => strip_tags($_POST["review_user_email"]),); // เพิ่มบทวิจารณ์ใหม่ให้กับไซต์ $wpdb->insert($this- > tbl_adv_reviews, $inputData);

โดยหลักการแล้วไม่มีอะไรซับซ้อนที่นี่ - แบบสอบถาม SQL ถูกสร้างขึ้นเพื่อเลือกข้อมูล แต่ถ้าส่งพารามิเตอร์ "การกระทำ" การตรวจสอบใหม่จะถูกเพิ่มก่อน แต่ก็ควรให้ความสนใจกับการบัฟเฟอร์เอาต์พุต จำเป็นเพื่อให้ได้ข้อมูลของหน้าที่แทรก

นั่นคือทั้งหมดที่ ตอนนี้เราสามารถเห็นสิ่งที่เราได้รับ ก ดาวน์โหลดปลั๊กอินและซอร์สโค้ดคุณสามารถที่นี่

แน่นอนว่านี่เป็นเพียงตัวอย่างหนึ่งของการสร้างปลั๊กอิน แต่จะยังทำงานเป็นแอปสำหรับผู้เยี่ยมชมทั่วไปได้หากคุณปรับเปลี่ยนเล็กน้อย เช่น เพิ่มการป้องกันจากบอทและเอาต์พุตทีละหน้า ขอให้มีความสุขในการเขียนโค้ด :)

แบบฟอร์มบนเว็บไซต์:

แผงควบคุมปลั๊กอิน:

รีวิวการแก้ไข:

คุณอาจสนใจ: