[wp-trac] [WordPress Trac] #25023: WordPress 3.6 deleting data on custom post meta
WordPress Trac
noreply at wordpress.org
Tue Aug 13 17:20:37 UTC 2013
#25023: WordPress 3.6 deleting data on custom post meta
---------------------------------------+------------------------------
Reporter: cdwharton | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: General | Version: 3.6
Severity: critical | Resolution:
Keywords: needs-patch needs-testing |
---------------------------------------+------------------------------
Description changed by helen:
Old description:
> Everything worked fine in WordPress 3.5 but after upgrading to WordPress
> 3.6 and then simply editing (not saving) a post with custom post meta
> caused all custom post meta to be cleared and deleted from the database.
>
> Here is the code I am using to generate and save the custom meta.
> Admittedly it is a bit old now. I haven't been able to narrow down the
> issue other than I think it is something in the save function causing the
> issue, maybe the autosave?
>
> The main concern is that the data is there until you edit, when you edit
> (and do not save) it deletes.
>
> /*
> #######################################################################
>
> Custom Meta for Page Summary
>
> #######################################################################
> */
>
> function page_summary_init(){
> add_meta_box("page_summary-meta", __("Enter the
> page summary" , "textdomain"), "page_summary_meta_options", "page",
> "normal", "high");
> add_meta_box("page_summary-meta", __("Enter the
> page summary" , "textdomain"), "page_summary_meta_options", "case_study",
> "normal", "high");
> }
>
> function page_summary_meta_options(){
> global $post;
> $custom = get_post_custom($post->ID);
>
> $page_summary = "";
>
> if( isset( $custom["page_summary"] ) ) {
> $page_summary = $custom["page_summary"][0];
> }
>
> ?>
> <div>
> <div style="padding: 10px 0;"><i><b><?php _e("If this
> page is a sub page, you can enter the page summary here and it will be
> fed up to the landing page." , "textdomain"); ?></b></i></div>
> <textarea class="large-text" rows="10"
> name="page_summary" id="page_summary"><?php echo
> $custom["page_summary"][0]; ?></textarea> <br />
> </div>
> <?php
> }
>
> function save_page_summary_meta(){
> global $post;
> if (isset( $post->post_type) && $post->post_type == 'page' ||
> $post->post_type == 'case_study' ){
> if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
> return $post->ID;
> } else {
> if( isset( $post->ID ) ) {
> update_post_meta($post->ID,
> "page_summary", $_POST["page_summary"]);
> }
> }
> }
> }
>
> add_action("admin_init", "page_summary_init");
> add_action('save_post', 'save_page_summary_meta');
New description:
Everything worked fine in WordPress 3.5 but after upgrading to WordPress
3.6 and then simply editing (not saving) a post with custom post meta
caused all custom post meta to be cleared and deleted from the database.
Here is the code I am using to generate and save the custom meta.
Admittedly it is a bit old now. I haven't been able to narrow down the
issue other than I think it is something in the save function causing the
issue, maybe the autosave?
The main concern is that the data is there until you edit, when you edit
(and do not save) it deletes.
{{{
/* #######################################################################
Custom Meta for Page Summary
####################################################################### */
function page_summary_init(){
add_meta_box("page_summary-meta", __("Enter the page summary" ,
"textdomain"), "page_summary_meta_options", "page", "normal", "high");
add_meta_box("page_summary-meta", __("Enter the page summary" ,
"textdomain"), "page_summary_meta_options", "case_study", "normal",
"high");
}
function page_summary_meta_options(){
global $post;
$custom = get_post_custom($post->ID);
$page_summary = "";
if( isset( $custom["page_summary"] ) ) {
$page_summary = $custom["page_summary"][0];
}
?>
<div>
<div style="padding: 10px 0;"><i><b><?php _e("If this page
is a sub page, you can enter the page summary here and it will be fed up
to the landing page." , "textdomain"); ?></b></i></div>
<textarea class="large-text" rows="10" name="page_summary"
id="page_summary"><?php echo $custom["page_summary"][0]; ?></textarea> <br
/>
</div>
<?php
}
function save_page_summary_meta(){
global $post;
if (isset( $post->post_type) && $post->post_type == 'page' ||
$post->post_type == 'case_study' ){
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return $post->ID;
} else {
if( isset( $post->ID ) ) {
update_post_meta($post->ID,
"page_summary", $_POST["page_summary"]);
}
}
}
}
add_action("admin_init", "page_summary_init");
add_action('save_post', 'save_page_summary_meta');
}}}
--
--
Ticket URL: <http://core.trac.wordpress.org/ticket/25023#comment:1>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list