การปรับแต่งตารางผู้ดูแลระบบ WordPress: การปรับเปลี่ยนขั้นสูง

เผยแพร่แล้ว: 2021-01-26

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

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

ปรับปรุงตารางการโพสต์ของผู้ดูแลระบบ WordPress

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

แสดงรูปภาพเด่น

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

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

หากคุณได้อ่านบทความและทำตามแล้ว คุณควรมีโค้ดต่อไปนี้ในไฟล์ functions.php ของธีมที่ใช้งานอยู่ ถ้าไม่โปรดเพิ่ม!

 add_filter('manage_posts_columns','add_custom_columns'); function add_custom_columns( $columns ) { $columns['last_modified'] = 'Last modified'; return $columns; } add_action( 'manage_posts_custom_column','custom_columns_content', 10, 2 ); function custom_columns_content ( $column_id, $post_id ) { switch( $column_id ) { case 'last_modified': echo get_post_field('post_modified', $post_id); break; } }

หากต้องการแสดงรูปภาพเด่นในตารางผู้ดูแลระบบ เราต้องแก้ไขโค้ดนี้ดังนี้:

 add_filter('manage_posts_columns','add_custom_columns'); function add_custom_columns( $columns ) { $columns['last_modified'] = 'Last modified'; $columns['my_post_thumbs'] = 'Thumbs'; return $columns; } add_action( 'manage_posts_custom_column','custom_columns_content', 10, 2 ); function custom_columns_content ( $column_id, $post_id ) { switch( $column_id ) { case 'last_modified': echo get_post_field('post_modified', $post_id); break; case 'my_post_thumbs': echo the_post_thumbnail( 'thumbnail' ); break; } }

ตัวเลข 10 และ 2 ในอาร์กิวเมนต์ที่สามและสี่ กำหนดลำดับความสำคัญที่ฟังก์ชันที่เกี่ยวข้องกับการดำเนินการนี้จะได้รับการประมวลผล อาร์กิวเมนต์เหล่านี้จะถูกส่งไปยังฟังก์ชัน custom_columns_content ของเรา

ค่าเริ่มต้นสำหรับลำดับความสำคัญคือ 10 ตัวเลข 2 แสดงปริมาณอาร์กิวเมนต์ของฟังก์ชัน ดังนั้นในกรณีของเรา การรวมตัวเลขเหล่านี้เป็นสิ่งสำคัญ เนื่องจากเรามี 2 อาร์กิวเมนต์ คือ $column_id และ $post_id

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

ตารางผู้ดูแลระบบ WordPress แสดงรูปภาพ

อย่างที่คุณเห็น ขณะนี้เรามีคอลัมน์ 'Last Modified' และคอลัมน์ 'Thumbs' ใหม่ของเรา

เปลี่ยนป้ายชื่อคอลัมน์

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

 add_filter('manage_posts_columns','rename_columns'); function rename_columns( $columns ) { $columns['author'] = 'Writer'; return $columns; }

แน่นอน คุณสามารถเปลี่ยนป้ายกำกับของหลายคอลัมน์ในข้อมูลโค้ดเดียวกันได้โดยเพิ่ม $columns['COLUMN_ID'] = 'NEW_LABEL'; ก่อน return $columns;

ปรับปรุงตารางหน้าผู้ดูแลระบบ WordPress

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

การดูโดยย่อว่าหน้าใดเป็นหน้าหลักของหน้าย่อยอาจเป็นประโยชน์อย่างยิ่ง เรามาดูวิธีการทำกัน

เพิ่มคอลัมน์ที่กำหนดเองที่แสดงโพสต์หลัก

ขั้นแรก สร้างเพจหลักและเพจย่อยพร้อมรูปภาพเด่นที่เกี่ยวข้อง

WordPress admin table parent และโพสต์ย่อย

ต่อไป เราจะใส่โค้ดบางส่วนลงในไฟล์ functions.php ของเรา เราจะทำตามขั้นตอนเดียวกันกับที่เราทำกับประเภทโพสต์เกี่ยวกับการเพิ่มสิ่งที่เราจะเรียกว่าคอลัมน์ "บรรพบุรุษ"

 add_filter('manage_pages_columns','add_ancestor_column'); function add_ancestor_column( $columns ) { $columns['ancestor'] = 'Ancestor'; return $columns; }

เช่นเดียวกับการวางคอลัมน์ในตำแหน่งที่ต้องการในตาราง เราจะเรียงลำดับคอลัมน์ของตารางใหม่เพื่อให้คอลัมน์ 'บรรพบุรุษ' มาก่อนคอลัมน์ผู้แต่ง

 add_filter('manage_pages_columns', 'change_ancestor_column_position'); function change_ancestor_column_position($columns) { $n_columns = array(); foreach($columns as $key => $value) { if ($key=='author'){ $n_columns['ancestor'] = 'ancestor'; } $n_columns[$key] = $value; } return $n_columns; }

ณ จุดนี้ ในหน้าจอผู้ดูแลเพจของคุณ คุณควรเห็นสิ่งนี้:

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

 add_action( 'manage_pages_custom_column','ancestor_column_content', 10, 2 ); function ancestor_column_content ( $column_id, $post_id ) { switch( $column_id ) { case 'ancestor': $ancestors = get_ancestors($post_id, 'subject', 'post_type'); $post_ancestor = end($ancestors); if ($post_ancestor != 0) { echo '<a href="' . get_edit_post_link($post_ancestor) . '">' . get_the_title($post_ancestor) . '</a>'; } else { echo '-'; } break; } }

ตอนนี้คุณควรเห็นหน้าหลักที่เกี่ยวข้องข้างหน้าย่อยที่แสดงอยู่ในคอลัมน์ 'บรรพบุรุษ'

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

การเปลี่ยนแปลงคอลัมน์เริ่มต้น

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

จัดเรียงคอลัมน์ใหม่

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

โชคดีที่ค่อนข้างง่ายและสามารถใช้งานได้โดยใช้ manage_posts_columns

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

 add_filter('manage_posts_columns', 'change_column_order'); function change_column_order($columns) { $n_columns = array(); $move = 'author'; // what to move $before = 'title'; // move before this foreach($columns as $key => $value) { if ($key==$before){ $n_columns[$move] = $move; } $n_columns[$key] = $value; } return $n_columns; }

แล้วโว้ย!

เพิ่มรูปภาพเด่นลงในตารางผู้ดูแลระบบ WordPress ของคุณ

การลบคอลัมน์

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

โชคดีที่การลบคอลัมน์ออกจากตารางของเราทำได้ง่ายมาก เราแค่ต้องเพิ่ม unset($columns['comments']); ในฟังก์ชันของ hook manage_posts_columns แม้ว่าจะสามารถเพิ่มโค้ดนี้ลงในโค้ดที่มีอยู่ได้ แต่จะง่ายกว่าถ้าเราสามารถแยกข้อมูลนี้ออกเป็นส่วนย่อยของโค้ดของตัวเองได้ เนื่องจากมีจุดประสงค์ที่แตกต่างกันและแนะนำฟังก์ชันใหม่ให้กับ hook

 add_filter('manage_posts_columns' , 'remove_columns'); function remove_columns($columns) { unset($columns['comments']); return $columns; }

และนั่นแหล่ะ รีเฟรชหน้าจอผู้ดูแลระบบของคุณและคุณจะเห็นว่าคอลัมน์ความคิดเห็นหายไป

หมายเหตุ: หากคุณไม่แน่ใจว่ารหัสของคอลัมน์คืออะไร คุณสามารถตรวจจับได้โดยใช้คอนโซลตัวตรวจสอบของเบราว์เซอร์

ปลั๊กอินคอลัมน์ผู้ดูแลระบบ

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

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

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

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

และใช่ คุณสามารถเพิ่มคอลัมน์ของคุณเองได้โดยใช้ปุ่ม 'เพิ่มคอลัมน์' ที่ด้านล่างขวา!

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

หลังจากนั้น คุณสามารถเปลี่ยนตัวเลือกรูปแบบวันที่ที่จะปรากฏขึ้นได้หากต้องการ

บทสรุป

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