当然,只要使用CSS和\'admin_head\'
钩住使其消失。我相信这就是你要找的?
(来源:mikeschinkel.com)
只需在主题中添加以下内容functions.php
文件或到.php
您可能正在编写的插件的文件。请注意,我包括\'init\'
钩子来定义“Home”post类型和“Bath”分类法,以便其他人可以更轻松地遵循该示例。还请注意,如果您的分类名为“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\' ),
)
);
}
更新,看来我错过了
the radio button part 问题的关键。不幸的是,WordPress并没有让这变得容易,但您可以使用
PHP output buffering (通过ob_start()
和ob_get_clean()
功能。)只需在输出metabox之前找到一个钩子(
\'add_meta_boxes\'
) 输出后还有一个挂钩(
\'dbx_post_sidebar\'
) 然后在捕获的HTML中搜索
\'checkbox\'
并替换为
\'radio\'
, 将其回显到屏幕上,您就完成了!代码如下:
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)