[wp-testers] Custom post type and Custom fields, help
Ezwan Aizat Bin Abdullah Faiz
aizat.faiz at gmail.com
Tue Mar 30 08:17:23 UTC 2010
I think this problem happens because of autosave.
Autosave will not save your custom post types.
You can disable autosave by placing this in an init hook
wp_deregister_script('autosave');
Regards,
Aizat
On Tue, Mar 30, 2010 at 4:08 PM, Patrick Edqvist
<patrick.edqvist at gmail.com>wrote:
> Hello everyone,
>
> What i'm trying to do is some nice custom fields added to my specific
> custom
> post type, in this case it's called "case"..
>
> Using add meta box i add some fields to the post type case and they show up
> just fine. Problem is however that when i update the post no information is
> saved in those fields. also i wondering i'm using the right technique to
> get
> those fields. What am I doing wrong?
>
> Here's the data that i'm using:
>
> *Adding the fields*
>
> /* Use the admin_menu action to define the custom boxes */
> add_action('admin_menu', 'case_add_custom_box');
>
> /* Use the save_post action to do something with the data entered */
> add_action('save_post', 'case_save_postdata');
>
> /* Adds a custom section to the "side" Post edit screens */
> function case_add_custom_box() {
>
> if( function_exists( 'add_meta_box' )) {
> add_meta_box( 'case_sectionid', __( 'Case information',
> 'case_textdomain' ),
> 'case_inner_custom_box', 'case', 'side' );
> } else {
> add_action('dbx_post_advanced'
> , 'case_old_custom_box' );
> }
> }
>
> /* Prints the inner fields for the custom post/page section */
> function case_inner_custom_box() {
>
> // Use nonce for verification
>
> echo '<input type="hidden" name="case_noncename" id="case_noncename"
> value="' .
> wp_create_nonce( plugin_basename(__FILE__) ) . '" />';
>
> // The actual fields for data entry
>
> echo '<label for="case_new_client" style="margin: 5px 0; display:
> block;">' . __("Who was the client?", 'case_textdomain' ) . '</label> ';
> echo '<input type="text" name="case_new_client" value="" size="30"
> /><br>';
>
> echo '<label for="case_new_project" style="margin: 5px 0; display:
> block;">' . __("What was the project name?", 'case_textdomain' ) .
> '</label>
> ';
> echo '<input type="text" name="case_new_project" value="" size="30"
> /><br>';
>
> echo '<label for="case_new_year" style="margin: 5px 0; display: block;">'
> . __("What year was this project released?", 'case_textdomain' ) .
> '</label>
> ';
> echo '<input type="text" name="case_new_field" value="" size="30" /><br>';
>
> echo '<label for="case_new_partner" style="margin: 5px 0; display:
> block;">' . __("Who were the partner('s)?", 'case_textdomain' ) . '</label>
> ';
> echo '<input type="text" name="case_new_partner" value="" size="30"
> /><br>';
>
> echo '<label for="case_new_link" style="margin: 5px 0; display: block;">'
> . __("Is there any link to the project? website?", 'case_textdomain' ) .
> '</label> ';
> echo '<input type="text" name="case_new_link" value="" size="30" /><br>';
>
> echo '<label for="case_new_pdf" style="margin: 5px 0; display: block;">' .
> __("Is there a pdf available for this case?", 'case_textdomain' ) .
> '</label> ';
> echo '<input type="text" name="case_new_pdf" value="" size="30" /><br>';
> }
>
> /* Prints the edit form for pre-WordPress 2.5 post/page */
> function case_old_custom_box() {
>
> echo '<div class="dbx-b-ox-wrapper">' . "\n";
> echo '<fieldset id="case_fieldsetid" class="dbx-box">' . "\n";
> echo '<div class="dbx-h-andle-wrapper"><h3 class="dbx-handle">' .
> __( 'My Post Section Title', 'case_textdomain' ) . "</h3></div>";
>
> echo '<div class="dbx-c-ontent-wrapper"><div class="dbx-content">';
>
> // output editing form
>
> case_inner_custom_box();
>
> // end wrapper
>
> echo "</div></div></fieldset></div>\n";
> }
>
> /* When the post is saved, saves our custom data */
> function case_save_postdata( $post_id ) {
>
> // verify this came from the our screen and with proper authorization,
> // because save_post can be triggered at other times
>
> if ( !wp_verify_nonce( $_POST['case_noncename'], plugin_basename(__FILE__)
> )) {
> return $post_id;
> }
>
> // verify if this is an auto save routine. If it is our form has not been
> submitted, so we dont want
> // to do anything
> if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
> return $post_id;
>
>
> // Check permissions
> if ( 'post' == $_POST['post_type'] ) {
> if ( !current_user_can( 'edit_post', $post_id ) )
> return $post_id;
> } else {
> if ( !current_user_can( 'edit_page', $post_id ) )
> return $post_id;
> }
>
> // OK, we're authenticated: we need to find and save the data
>
> $mycasedata = $_POST['case_new_client'];
> update_post_meta($pageId, '_'.$name, $mycasedata);
> // Do something with $mydata
> // probably using add_post_meta(), update_post_meta(), or
> // a custom table (see Further Reading section below)
>
> return $mydata;
> }
>
>
> *Trying to get the data in a template using*
>
> <?php echo get_post_meta( $post_id, 'case_new_client', 'true' ); ?>
>
>
> Kind regards
>
>
> --
> Patrick Edqvist
> _______________________________________________
> wp-testers mailing list
> wp-testers at lists.automattic.com
> http://lists.automattic.com/mailman/listinfo/wp-testers
>
--
http://aizatto.com
More information about the wp-testers
mailing list