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