我有两个不同的插件。我的自定义帖子类型在第一个插件上,它有一些元框。现在在第二个插件中,我使用IMAP提取了电子邮件,并将其存储在第一个插件的post类型中。在下面的代码中,两个变量ticket_username
和ticket_email
在一个班级里。
for($i=1; $i<=imap_num_msg($this->conn); $i++) {
$res = imap_headerinfo($this->conn, $i);
$ticket_username = $res->fromaddress; //For username
$ticket_email = $res->from[0]->mailbox . "@" . $res->from[0]->host;// For E-mail.
}
我从电子邮件中分配了用户名和电子邮件。现在我想把这封电子邮件和用户名和电子邮件一起插入我的元框。
if(!function_exists(\'custom_meta_ticket_field_callback\')){
function custom_meta_ticket_field_callback($post) {
wp_nonce_field( \'custom_ticket_metabox_nonce\', \'faqpress_ticket_meta_fields_nonce\' );
$ticket_username = get_post_meta( $post->ID, \'ticket_username\', true );
$ticket_email = get_post_meta( $post->ID, \'ticket_email\', true );
?>
<label for="custom_design"><h4><?php _e( \'Name\', \'Custom\' ); ?></h4></label>
<input type="text" id="" class="widefat" name="ticket_username" value="<?php echo esc_attr( $ticket_username ); ?>" size="25" readonly />
<label for="design"><h4><?php _e( \'Email\', \'Custom\' ); ?></h4></label>
<input type="email" id="" class="widefat" name="email" value="<?php echo esc_attr( $ticket_email ); ?>" size="25" readonly />
<?php
}
}
注意:CPT和metabox在另一个插件中注册,电子邮件由另一个插件提取并存储在CPT中。
最合适的回答,由SO网友:Jacob Peattie 整理而成
元框是不相关的。元框只是向经典编辑器添加任意表单和数据的UI。
重要的是数据存储的方式和位置。谢天谢地,您包含的代码揭示了这一点。从您的代码中,我们可以看到保存的值存储为post meta:
$faqpress_ticket_username = get_post_meta( $post->ID, \'faqpress_ticket_username\', true );
$faqpress_ticket_email = get_post_meta( $post->ID, \'faqpress_ticket_email\', true );
因此,如果您想将数据存储在与元框相同的位置,那么还需要将其存储为post meta。存储post meta就像使用相应的
update_post_meta()
:
update_post_meta( $post_id, \'faqpress_ticket_username\', $value );
update_post_meta( $post_id, \'faqpress_ticket_email\', $value );
你只需要确保
$post_id
和
$value
适当填充变量。