个性化阅读
专注于IT技术分析

单个{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="<?php echo $post->ID; ?>"/>
    <input type="hidden" name="msgby" value="<?php echo get_current_user_id(); ?>"/>
    <input type="hidden" name="msgdate" value="<?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="msg" />
<input type="submit" name="submit" class="red-btn" value="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' ];
}?>

之间<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()。

赞(0)
未经允许不得转载:srcmini » 单个{customposttype}.php中的函数wp_insert_post()清除自定义字段

评论 抢沙发

评论前必须登录!