Tentu saja, cukup gunakan CSS dan 'admin_head'
hook untuk membuatnya menghilang. Saya percaya ini yang Anda cari?
(sumber: mikeschinkel.com )
Cukup tambahkan berikut ini ke functions.php
file tema Anda atau ke .php
file plugin yang mungkin Anda tulis. Perhatikan bahwa saya menyertakan sebuah 'init'
kait untuk mendefinisikan tipe posting "Home" dan taksonomi "Bath" sehingga orang lain dapat lebih mudah mengikuti contoh. Perhatikan juga bahwa jika taksonomi Anda dinamai Baths " Anda harus mengubah pemilih CSS menjadi #newbaths_parent
alih-alih #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' ),
)
);
}
MEMPERBARUI
Jadi sepertinya saya melewatkan bagian tombol radio dari pertanyaan. Sayangnya WordPress tidak membuat ini mudah, tetapi Anda bisa mewujudkannya dengan menggunakan buffering output PHP (melalui ob_start()
dan ob_get_clean()
fungsi.) Temukan saja hook sebelum metabox adalah output ( 'add_meta_boxes'
) dan hook setelah itu adalah output ( 'dbx_post_sidebar'
) dan kemudian cari yang ditangkap HTML untuk 'checkbox'
dan ganti dengan 'radio'
, gema ke layar dan kamu selesai! Kode berikut:
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;
}
Dan buktinya:
(sumber: mikeschinkel.com )