单个{customposttype}.php中的函数wp_insert_post()清除自定义字段

我有single-mypost.php来显示mypost单个帖子, 用户可以在其中提交msgs的表单(msgs是私人消息的另一种自定义帖子类型)。当用户提交表单时, 新帖子会完美添加到msg中, 但单个mypost自定义字段将变为空。我已经添加了代码正在使用

< form method="post" action="" class="gform" onSubmit="return validatebid()"> < h2> Message< /h2> < input type="hidden" name="msgfor" value="http://www.srcmini.com/< ?php echo $post-> ID; ?>"/> < input type="hidden" name="msgby" value="http://www.srcmini.com/< ?php echo get_current_user_id(); ?>"/> < input type="hidden" name="msgdate" value="http://www.srcmini.com/< ?php echo date('Y-m-d H:i:s'); ?> "/> < div class="row"> < label> Message< /label> < div class="field"> < textarea name="textareafield"> < /textarea> < /div> < /div> < div class="row"> < input type="hidden" name="task" value="http://www.srcmini.com/msg" /> < input type="submit" name="submit" class="red-btn" value="http://www.srcmini.com/Message Now"/> < /div> < /form>

一旦用户提交表单, 我就会使用wp_insert_post插入帖子。我在get_header之前添加的代码。
if ( isset( $_POST[ 'task' ] ) & & $_POST[ 'task' ] == 'msg' ) { $post_info = array( 'post_title' => wp_strip_all_tags( $_POST[ "msgfor" ] . '-' . $_POST[ "msgby" ] . '-' . $_POST[ "msgdate" ] ), 'post_content' => $_POST[ 'textareafield' ], 'post_type' => 'msgs', 'post_status' => 'publish' ); $pid = wp_insert_post( $post_info ); echo $pid; update_post_meta( $pid, "msgfor", $_POST[ "msgfor" ] ); update_post_meta( $pid, "msgby", $_POST[ "msgby" ] ); update_post_meta( $pid, "msgdate", $_POST[ "msgdate" ] ); }

#1请加
< ?php if ( isset( $_POST[ 'textareafield' ] ) ) { echo $_POST[ 'textareafield' ]; }?>

【单个{customposttype}.php中的函数wp_insert_post()清除自定义字段】之间< textarea name =” textareafield” > < / textarea>
#2我认为代码的第二部分应该在单独的文件中, 它看起来像这样:
require('wp-load.php'); // make sure that it is the correct path to this file... your code here ...

作为一种选择, 使用wp_ajax_ action钩子通过AJAX提交表单。
关键思想不是在single-mypost.php模板中使用wp_insert_post()。

    推荐阅读