Klar, benutze einfach CSS und den 'admin_head'
Haken, damit es verschwindet. Ich glaube, das ist was Sie suchen?
(Quelle: mikeschinkel.com )
Fügen Sie einfach Folgendes zur functions.php
Datei Ihres Themas oder zu einer .php
Datei eines Plugins hinzu, das Sie möglicherweise schreiben. Beachten Sie, dass ich einen 'init'
Haken eingefügt habe, um den Post-Typ "Home" und die Taxonomie "Bath" zu definieren, damit andere dem Beispiel leichter folgen können. Beachten Sie auch , dass , wenn Ihre Taxonomie genannt wird Baths“ Sie werden die CSS - Selektor ändern müssen #newbaths_parent
statt #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' ),
)
);
}
AKTUALISIEREN
Ich habe also anscheinend den Radioknopf-Teil der Frage verpasst . Leider macht WordPress dies nicht einfach, aber Sie können es durch die Verwendung der PHP-Ausgabepufferung (über die ob_start()
und ob_get_clean()
-Funktionen) erreichen. Suchen Sie einfach einen Hook, bevor die Metabox ausgegeben wird ( 'add_meta_boxes'
), und einen Hook, nachdem sie ausgegeben wurde ( 'dbx_post_sidebar'
), und durchsuchen Sie dann die erfassten HTML für 'checkbox'
und ersetzen mit 'radio'
, Echo auf den Bildschirm und fertig! Code folgt:
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;
}
Und die Beweise:
(Quelle: mikeschinkel.com )