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
[email protected]
http://lists.automattic.com/mailman/listinfo/wp-testers

Reply via email to