วิธีการใช้ประเภทโพสต์ที่กำหนดเองและฟิลด์ที่กำหนดเองใน WordPress

เผยแพร่แล้ว: 2014-06-10

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

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

ดูเหมือนว่าเว็บไซต์ทดสอบ Monday Morning Mug (ที่เราใช้ในโพสต์บล็อกการรวมอีเมล) มีปัญหาใหม่ให้จัดการ บล็อกของเรามีขนาดใหญ่มากจนเราจ้างพนักงานตรวจสอบกาแฟเต็มเวลา พวกเขายุ่งอยู่กับการชงกาแฟและเขียนรีวิว พวกเขาได้โพสต์บทวิจารณ์เหล่านี้ในบล็อก แต่ผู้อ่านของเราบอกเราว่าบทวิจารณ์ทั้งหมดนี้เป็นอุปสรรคต่อเนื้อหาบล็อกที่ "จริง" ของเรา เราจำเป็นต้องสร้างที่แยกต่างหากสำหรับบทวิจารณ์กาแฟของเรา แต่หน้า WordPress ปกติจะไม่ถูกตัดออก ผู้วิจารณ์ยังได้แนะนำว่าพวกเขาอยากจะมีที่สำหรับเก็บข้อมูลได้อย่างง่ายดาย เช่น ประเทศที่กาแฟมาจากและบันทึกการชิม บนเว็บไซต์ ดูเหมือนการใช้งานที่สมบูรณ์แบบสำหรับประเภทโพสต์ที่กำหนดเอง ซึ่งเป็นคุณลักษณะของ WordPress ที่ช่วยให้เราสร้างส่วนเนื้อหาใหม่บนไซต์ของเราได้

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

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

หมายเหตุ: ในการดำเนินการนี้ คุณจะต้องสามารถแก้ไขไฟล์ .php ในไดเร็กทอรีการติดตั้ง WordPress ของคุณได้ ซึ่งโดยปกติแล้วจะต้องเข้าถึง FTP/SFTP/SSH ตรวจสอบให้แน่ใจว่าคุณมีสิ่งนี้ก่อนที่จะดำเนินการต่อ

ทุกธีมของ WordPress สามารถใช้ไฟล์ functions.php ซึ่งอยู่ที่:
/wp-content/themes/your_current_theme/functions.php
โดยทั่วไป ไฟล์นี้ใช้สำหรับการเปลี่ยนแปลงไซต์เฉพาะธีมรวมถึงการปรับเปลี่ยนไซต์แบบกำหนดเองที่มีขนาดเล็กลง เช่นเดียวกับที่เรากำลังจะทำ

หมายเหตุ: เราจะเพิ่มโค้ดลงในไฟล์ functions.php ซึ่งหมายความว่าเป็นโค้ดเฉพาะของธีม หากคุณเพิ่มสิ่งนี้ลงในไฟล์ functions.php ของคุณแล้วเปลี่ยนธีมในการติดตั้ง WordPress คุณจะลบประเภทโพสต์ที่กำหนดเองออกจากเว็บไซต์ของคุณ คุณสามารถรักษาประเภทเนื้อหาแบบกำหนดเองได้โดยใช้ปลั๊กอิน เช่น Custom Post Type UI

1. เปิดไฟล์ functions.php ของคุณและเพิ่มรหัสต่อไปนี้ที่ด้านล่างของไฟล์:

function create_new_post_type() {
$labels = array(
'name' 			 => __('Coffee Reviews'),
'singular_name'  => __('Coffee Review'),
);
$args = array(
'labels'      	 => $labels,
'public' 	  	 => true,
'has_archive' 	 => true,
'menu_position'  => 5,
'description'    => 'Reviews And Types of Coffee',
'rewrite'     	 =>
array('slug' => 'reviews'),
'supports'    	 =>
array( 'title',
'comments', 'editor',
'thumbnail', 'custom-fields', 'revisions'),
);

register_post_type('Reviews', $args);
}
add_action('init', 'create_new_post_type');

เนื่องจากเราไม่ชอบใช้โค้ดโดยเฉพาะอย่างยิ่งโดยไม่รู้ว่ามันใช้ทำอะไร มาดูกันดีกว่าว่าโค้ดนี้ทำอะไรได้บ้าง

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

อาร์เรย์ $args มีข้อมูลเฉพาะทั้งหมดที่เราต้องการเพื่อกำหนดประเภทเนื้อหาใหม่ของเรา นี่คือสิ่งที่ทำ:

  • 'labels' – อาร์เรย์ที่กำหนดสิ่งที่เราจะเรียกว่าประเภทเนื้อหาของเรา มีป้ายกำกับอีกมากมายที่คุณสามารถใช้ได้ และรายการทั้งหมดมีอยู่ในเอกสารประกอบที่นี่
  • 'public' – บูลีนที่กำหนดว่าจะสามารถดูโพสต์ภายนอกแผงการดูแลระบบได้หรือไม่
  • 'has_archive' – หากเป็นจริง บูลีนนี้จะสร้างที่เก็บถาวรของโพสต์ที่กำหนดเองประเภทนี้ เช่นเดียวกับโพสต์ WordPress มาตรฐาน
  • 'menu_position' – จำนวนเต็มนี้จะเปลี่ยนตำแหน่งที่ปุ่มการนำทางโพสต์แบบกำหนดเองของคุณไป เลข 5 ระบุว่าจะไปอยู่ใต้แท็บโพสต์โดยตรง สำหรับรายการรหัสตัวเลขทั้งหมด โปรดดูเอกสารประกอบเดียวกัน
  • 'description' – อธิบายประเภทโพสต์
  • 'rewrite' - สิ่งนี้เปลี่ยนกระสุนเป็น "บทวิจารณ์" ซึ่งจะช่วยสร้างโครงสร้างลิงก์ถาวรที่ใช้งานได้ (สามารถบูลีนได้เช่นกัน โปรดตรวจสอบเอกสารประกอบสำหรับข้อมูลเพิ่มเติม)
  • 'supports' – อาร์เรย์ที่กำหนดว่าฟีเจอร์การแก้ไข/โพสต์ของ WordPress ใดบ้างที่เปิดใช้งาน อันนี้ค่อนข้างยืดหยุ่นและมีตัวเลือกมากมาย แต่เราจะต้อง custom-fields และตัว editor เป็นอย่างน้อยสำหรับโพสต์นี้

ฟังก์ชัน register_post_type() เรียกว่า next ซึ่งสร้างประเภทโพสต์ใหม่ที่เรียกว่ารีวิวโดยใช้อาร์เรย์ของอาร์กิวเมนต์ที่เราเพิ่งกำหนด

สุดท้าย เราต้องเรียกใช้ฟังก์ชันสุดท้ายเพื่อทำให้กระบวนการเสร็จสมบูรณ์ register_post_type() ควรเริ่มต้นโดยการกระทำ 'init' เสมอ เราสามารถขอฟังก์ชั่นใหม่ของเราเพื่อเริ่มต้นโดยเรียก

add_action(‘init’, ‘create_new_post_type’);

สุดยอด! ตอนนี้ถ้าเราเข้าสู่แผงผู้ดูแลระบบ WordPress เราควรเห็นแท็บใหม่ทางด้านซ้ายที่เรียกว่า "บทวิจารณ์"

กาแฟ_รีวิว

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

3. ใต้แถบเมนูการตั้งค่า -> ลิงก์ถาวร คุณจะพบตัวเลือกทั่วไปมากมายสำหรับโครงสร้างลิงก์ถาวร เราจะเปลี่ยนการตั้งค่าแบบกำหนดเองให้ตรงกับฟิลด์ /%category%/%postname%/

ซึ่งหมายความว่า WordPress จะสร้าง URL ให้ตรงกับหมวดหมู่และชื่อบทความของเรา

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

custom_permalink

ตอนนี้เรามาดู URL ของโพสต์ที่นักวิจารณ์ของเราเขียนเกี่ยวกับกาแฟสุมาตรา เกเทียร่า:

sumatra_permalink

มหัศจรรย์! ตรวจสอบ URL นั้น เรามีบทวิจารณ์แยกเป็นไดเรกทอรีของพวกเขาเอง และ URL นั้นเขียนด้วยภาษาอังกฤษล้วน ตอนนี้ผู้อ่านของเรารู้ดีว่าพวกเขาจะได้รับอะไรเมื่อคลิกลิงก์

ฟิลด์ที่กำหนดเอง

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

1. ในโปรแกรมแก้ไขรีวิวแต่ละรายการ คุณจะเห็นปุ่มตัวเลือกหน้าจอที่มุมบนขวาของตัวแก้ไข:

screen_options

ซึ่งขยายเป็นสิ่งนี้เมื่อคลิก:

screen_options_dropdown

2. เลือกช่อง Custom Fields

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

custom_fields_blank

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

custom_fields_region

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

4. เราจะเพิ่มแท็กโค้ดนี้ในเอกสารธีมของเรา:

<br /><?php the_meta(); ?><br />

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

เมื่อกลับมาตรวจสอบบล็อกของเรา เราจะพบว่าแท็กของเราได้แทรกรายการลงในการตรวจทานของเรา

custom_field_example

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