我不知道我是否遗漏了什么,但有几种方法可以将Html添加到Existing core 编写元框,并保存与帖子相关的自定义字段。
一个选项是为authordiv
html内容,or 通过过滤此框上“作者”下拉选择列表的输出,添加html。
我更喜欢后者,以防一些插件已经创建了回调。在渲染长方体之前应用过滤器,并在第一次出现wp_dropdown_users
.
但是,在任何情况下,都需要对add_meta_boxes
钩子:
function ua_add_meta_boxes($post_type, $post){
global $wp_meta_boxes;
if(!isset($wp_meta_boxes[$post_type][\'normal\'][\'core\'][\'authordiv\'])) return;
// Change the callback
$wp_meta_boxes[$post_type][\'normal\'][\'core\'][\'authordiv\'][\'callback\'] = \'my_callback_authordiv_html\';
// Or hook into the dropdown html created Html
add_filter(\'wp_dropdown_users\', \'ua_extend_metbox_authordiv\', 10, 1);
}
add_action(\'add_meta_boxes\', \'ua_add_meta_boxes\', 5, 2);
如果回调:
function my_callback_authordiv_html(){
// copy the default select stuff and add some more HTML of our own
}
如果筛选下拉列表(添加自定义字段示例):
function ua_extend_metbox_authordiv($html){
global $post;
remove_filter(\'wp_dropdown_users\', \'ua_expand_author_box\', 10, 1);
$meta = get_post_meta($post->ID, \'my_custom field\', true);
$label = __(\'Check my checkbox\', \'text-domain\');
$html .= \'<input type="hidden" name="ua_author_metabox_check_nonce" value="\'. wp_create_nonce(basename(__FILE__)). \'" />\';
$html .= \'<label><input type="checkbox" name="my_custom field" id="my_custom field"\' . ( $meta ? \' checked="checked"\' : \'\' ) . \' /> \'.$label.\'</label>\';
return $html;
}
然后,您需要自定义字段的Save post操作,但这是另一个主题。