Chắc chắn, chỉ cần sử dụng CSS và 'admin_head'
hook để làm cho nó biến mất. Tôi tin rằng đây là những gì bạn đang tìm kiếm?
(nguồn: mikechinkel.com )
Chỉ cần thêm phần sau vào functions.php
tệp của chủ đề hoặc vào .php
tệp của plugin mà bạn có thể đang viết. Lưu ý rằng tôi đã bao gồm một 'init'
cái móc để xác định loại bài đăng "Nhà" và phân loại "Tắm" để những người khác có thể dễ dàng làm theo ví dụ hơn. Cũng lưu ý rằng nếu phân loại của bạn được đặt tên là Tắm ", bạn sẽ cần thay đổi bộ chọn CSS #newbaths_parent
thay vì #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' ),
)
);
}
CẬP NHẬT
Vì vậy, có vẻ như tôi đã bỏ lỡ phần nút radio của câu hỏi. Thật không may, WordPress không làm điều này dễ dàng nhưng bạn có thể thực hiện bằng cách sử dụng bộ đệm đầu ra PHP (thông qua các hàm ob_start()
và ob_get_clean()
chức năng.) Chỉ cần tìm một hook trước khi metabox là output ( 'add_meta_boxes'
) và hook sau khi nó là output ( 'dbx_post_sidebar'
) và sau đó tìm kiếm bắt được HTML cho 'checkbox'
và thay thế bằng 'radio'
, lặp lại màn hình và hoàn thành! Mã sau:
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;
}
Và bằng chứng:
(nguồn: mikechinkel.com )