แน่นอนว่าใช้ CSS และ'admin_head'
เบ็ดเพื่อทำให้มันหายไป ฉันเชื่อว่านี่คือสิ่งที่คุณกำลังมองหา?
(ที่มา: mikeschinkel.com )
เพียงเพิ่มสิ่งต่อไปนี้ในfunctions.php
ไฟล์ธีมของคุณหรือไปยัง.php
ไฟล์ปลั๊กอินที่คุณอาจกำลังเขียน โปรดทราบว่าฉันได้รวม'init'
เบ็ดเพื่อกำหนดประเภทโพสต์"บ้าน"และอนุกรมวิธาน"บา ธ "เพื่อให้ผู้อื่นสามารถทำตามตัวอย่างได้ง่ายขึ้น นอกจากนี้ยังทราบว่าถ้าอนุกรมวิธานของคุณเป็นชื่อBaths"คุณจะต้องเปลี่ยนการเลือก CSS ที่จะ#newbaths_parent
แทน#newbath_parent
:
add_action('admin_head','remove_bath_parents');
function remove_bath_parents() {
global $pagenow;
if (in_array($pagenow,array('post-new.php','post.php'))) { // Only for the post add & edit pages
$css=<<<STYLE
<style>
<!--
#newbath_parent {
display:none;
}
-->
</style>
STYLE;
echo $css;
}
}
add_action('init','add_homes_and_baths');
function add_homes_and_baths() {
register_post_type('home',
array(
'label' => 'Homes',
'public' => true,
'rewrite' => array('slug' => 'homes'),
'hierarchical' => false,
)
);
register_taxonomy('bath', 'home', array(
'hierarchical' => true,
'label' => 'Baths',
'rewrite' => array('slug' => 'baths' ),
)
);
}
UPDATE
ดังนั้นดูเหมือนว่าฉันพลาดปุ่มตัวเลือกไปเป็นส่วนหนึ่งของคำถาม น่าเสียดายที่ WordPress ไม่ได้ทำให้ง่าย แต่คุณสามารถทำให้มันเกิดขึ้นได้โดยใช้PHP output buffering (ผ่านทางob_start()
และob_get_clean()
ฟังก์ชั่น)เพียงแค่หา hook ก่อนที่ metabox จะถูกเอาท์พุท ( 'add_meta_boxes'
) และ hook หลังจากที่มันถูก output ( 'dbx_post_sidebar'
) HTML สำหรับ'checkbox'
และแทนที่ด้วย'radio'
echo ไปที่หน้าจอและคุณทำได้! รหัสดังต่อไปนี้:
add_action('add_meta_boxes','mysite_add_meta_boxes',10,2);
function mysite_add_meta_boxes($post_type, $post) {
ob_start();
}
add_action('dbx_post_sidebar','mysite_dbx_post_sidebar');
function mysite_dbx_post_sidebar() {
$html = ob_get_clean();
$html = str_replace('"checkbox"','"radio"',$html);
echo $html;
}
และหลักฐาน:
(ที่มา: mikeschinkel.com )