是的,这是可能的。如果要通过元框添加自定义字段,可以执行以下操作:
// add action to create your custom field
add_action( \'add_meta_boxes\', \'create_meta_box\' );
// add a callback that will be called when saving the post
add_filter( \'save_post\', \'save_meta_box\', 10, 2 );
// function that will create a meta box
function create_meta_box() {
add_meta_box(\'sample_meta_box\', __(\'Sample Box\'), \'display_meta_box\');
}
// function that will display the actual meta box
function display_meta_box($post, $metabox) {
?>
<input name="sample" type="text" id="sample" value="<?php echo get_post_meta($post->ID, \'sample\', true); ?>">
<?php
}
// function that will be called when the post is saved
function save_meta_box($post_id, $post) {
// default value for the field
$value = $_POST[\'post_title\'][0];
// only use the default value if user haven\'t specified one
if(!empty($_POST[\'sample\'])) {
$value = $_POST[\'sample\'];
}
// update the meta data for the post
update_post_meta($post_id, \'sample\', $value);
}
当然你必须改变
sample
在本例中,是指元数据字段的名称。
如果已经通过管理界面创建了自定义字段,则可以执行以下操作:
// add a callback that will be called when saving the post
add_filter( \'save_post\', \'save_custom_field\', 10, 2 );
// called when updating a post
function save_custom_field($post_id, $post) {
// loop through the meta data
if(isset($_POST[\'meta\'])) {
foreach($_POST[\'meta\'] as $key => $value) {
// check if it\'s the correct field
if($value[\'key\'] == \'sample\') {
// this will always set the custom field to the first letter in the title
update_post_meta($post_id, \'sample\', $_POST[\'post_title\'][0]);
break;
}
}
}
}
就像在第一个示例中一样,您必须更改
sample
自定义字段的名称。