ฉันสงสัยว่าถ้ามีวิธีเปลี่ยนตำแหน่งเริ่มต้นของกล่องเมตา Wordpresses เช่น "ภาพเด่น" สำหรับประเภทโพสต์ที่กำหนดเองโดยไม่ต้องลากด้วยตนเอง?
ตัวอย่าง:
ฉันสงสัยว่าถ้ามีวิธีเปลี่ยนตำแหน่งเริ่มต้นของกล่องเมตา Wordpresses เช่น "ภาพเด่น" สำหรับประเภทโพสต์ที่กำหนดเองโดยไม่ต้องลากด้วยตนเอง?
ตัวอย่าง:
คำตอบ:
คุณสามารถลบเมตาบ็อกซ์เริ่มต้นด้วย remove_meta_box และเพิ่มเข้าไปในตำแหน่งอื่นด้วย add_meta_box:
add_action('do_meta_boxes', 'wpse33063_move_meta_box');
function wpse33063_move_meta_box(){
remove_meta_box( 'postimagediv', 'post', 'side' );
add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', 'post', 'normal', 'high');
}
สิ่งนี้จะลบออกจากคอลัมน์ด้านข้างและเพิ่มลงในคอลัมน์หลัก เปลี่ยนpost
ในตัวอย่างนี้เป็นประเภทโพสต์ที่กำหนดเองของคุณ
add_meta_box()
ต้องการ$callback
ฟังก์ชั่นชื่อฉันจะรู้ชื่อของฟังก์ชั่นที่ใช้โดย WordPress ได้อย่างไร? สมมติว่าฉันต้องการทำสิ่งเดียวกันกับแถบด้านข้าง meta_box 'หมวดหมู่' (#categorydiv) หรือไม่
/wp-admin/edit-form-advanced.php
และคุณจะเห็นว่า WordPress เพิ่มกล่องเมตาหลักทั้งหมดและการเรียกกลับและอาร์กิวเมนต์ที่ใช้ post_categories_meta_box
สำหรับประเภทที่มันเป็น
ฉันดิ้นรนกับสิ่งนี้เช่นกัน ฉันไม่ได้หาวิธีทำความสะอาดเพื่อกำหนดโครงร่าง / คำสั่งใหม่ - โดยเฉพาะอย่างยิ่งเนื่องจากผู้ใช้สามารถเปลี่ยนแปลงได้เมื่อ / ถ้าพวกเขาลากกล่อง
ฉันชอบที่จะทำสิ่งต่าง ๆ ด้วย 'wordpress' (โดยปกติแล้วจะจ่ายออก), ปกครองมากกว่าปะทะกับมันและวิธีที่ wordpress ทำมันเป็นดังนี้:
wordpress จัดเก็บตำแหน่งลากต่อผู้ใช้ต่อหน้าจอและมีพวงของคีย์ผู้ใช้เมตาทั้งหมดที่ใช้ขึ้นอยู่กับหน้า / หน้าจอที่มันอยู่
ดังนั้นคุณสามารถเพิ่มการดำเนินการหรือตัวกรองสำหรับผู้ใช้ใหม่แต่ละรายเพื่อตั้งค่าผู้ใช้ในแบบที่คุณต้องการให้เป็นค่าเริ่มต้น
1) ลากและจัดเรียงหน้าที่คุณต้องการให้มีผลต่อจากนั้น 2) ดู phpmyadmin ที่ user-meta สำหรับ id ของคุณและดูว่า wp เก็บไว้ที่ใด 3) จากนั้นโค้ดการกระทำของผู้ใช้ใหม่ดังต่อไปนี้หากผู้ใช้ไม่ได้ตั้งค่าไว้แล้ว (เพื่อหลีกเลี่ยงการเขียนทับตัวเลือกส่วนบุคคล) คุณสามารถตั้งค่าตามที่คุณต้องการ - ด้วยค่าที่คุณพบจากการตั้งค่าด้วยตนเอง
ในการรับแนวคิดของผู้ใช้เมตาดาต้าที่คุณกำลังมองหาดูภาพหน้าจอเหล่านี้: http://wpusersplugin.com/related-plugins/amr-user-templates/sc Screenshots-for-user-templates/
(ฉันลงเอยด้วยการเขียนปลั๊กอินทั่วไปเพื่อที่ฉันจะได้เป็นผู้ดูแลระบบกำหนดเลย์เอาต์ที่ฉันต้องการสำหรับผู้ใช้ทุกคนสำหรับหน้า / หน้าจอทุกประเภทจากนั้นพวกเขาสามารถแก้ไขได้เช่นเมื่อพวกเขามีความเชี่ยวชาญมากขึ้น สิ่งที่เป็นฉันปลั๊กอินเพียงดึงค่าผู้ใช้แม่แบบมันไม่ได้พยายามที่จะตั้งค่าเป็นค่าฮาร์ดโค้ด)
หากคุณต้องการสั่งซื้อกล่องเมตาของคุณอย่างแม่นยำคุณสามารถใช้ปลั๊กอินนี้: https://wordpress.org/plugins/post-meta-box-order/
มันเล่นบน meta-box-order_post ของตัวเลือกผู้ใช้ (ตาราง wp_usermeta)
หมายเหตุ 1: เทคนิคนี้สามารถนำไปใช้กับ CPT ที่กำหนดเองใด ๆ โดยเปลี่ยนจุดสิ้นสุดของการตั้งค่าสถานะ: meta-box-order_ [YOUR_CPT]
หมายเหตุ 2: อย่าลืมเปลี่ยนแฮชในรหัสของปลั๊กอินเพื่อใช้คำสั่งซื้อใหม่กับผู้ใช้ที่มีอยู่ทั้งหมด