所以,我有以下的代碼,讓前臺編輯的WordPress從這裏取:https://wordpress.stackexchange.com/questions/9912/front-end-post-editing-using-a-form編輯後用更新
<?php
if ('POST' == $_SERVER['REQUEST_METHOD'] && ! empty($_POST['post_id']) && ! empty($_POST['post_title']) && isset($_POST['update_post_nonce']) && isset($_POST['postcontent']))
{
$post_id = $_POST['post_id'];
$post_type = get_post_type($post_id);
$capability = ('page' == $post_type) ? 'edit_page' : 'edit_post';
if (current_user_can($capability, $post_id) && wp_verify_nonce($_POST['update_post_nonce'], 'update_post_'. $post_id))
{
$post = array(
'ID' => esc_sql($post_id),
'post_content' => esc_sql($_POST['postcontent']),
'post_title' => esc_sql($_POST['post_title'])
);
wp_update_post($post);
if (isset($_POST['edit_test'])) update_post_meta($post_id, 'edit_test', esc_sql($_POST['edit_test']));
if (isset($_POST['edit_test2'])) update_post_meta($post_id, 'edit_test2', esc_sql($_POST['edit_test2']));
}
else
{
wp_die("You can't do that");
}
}
?>
<form class="royal_page" role="form" method="post">
<input type="hidden" name="post_id" value="<?php the_ID(); ?>" />
<?php wp_nonce_field('update_post_'. get_the_ID(), 'update_post_nonce'); ?>
<p><label for="post_title">Title</label>
<input type="text" id="post_title" name="post_title" value="<?php echo $post->post_title; ?>" /></p>
<p><?php wp_editor($post->post_content, 'postcontent'); ?></p>
<p><label for="post_title">Test</label>
<?php $value = get_post_meta(get_the_ID(), 'edit_test', true); ?>
<input type="text" id="edit_test" name="edit_test" value="<?php echo $value; ?>" /></p>
<p><label for="post_title">Test 2</label>
<?php $value = get_post_meta(get_the_ID(), 'edit_test2', true); ?>
<input type="text" id="edit_test2" name="edit_test2" value="<?php echo $value; ?>" /></p>
<input type="submit" id="submit" value="Update" />
</form>
所以,編輯職位本身的工作就好了。一旦提交編輯,然後刷新頁面。
我看到刷新後所做的更改。但是,編輯表單不再包含內容,我必須再次刷新頁面才能看到它(請參閱下面的圖像)。
有誰知道爲什麼會那樣做,如果有要如何解決它的任何解決方案?
謝謝!