I added the following two metaboxes to my functions.php file and it works, but it’s a lot of code.
Question: Is there a shorter or simple way to do this without a plugin?
/**
* Add custom fields to a specific WP page template & save it
*/
$post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'] ;
$template_file = get_post_meta($post_id,'_wp_page_template',TRUE);
// check for a template type
if ($template_file == 'template-testhome.php') { //this is the template change on real site
// add the actions to add functions :: how many slides to show
add_action( 'admin_menu', 'slidestoshow_create_post_meta_box' );
add_action( 'save_post', 'slidestoshow_save_post_meta_box', 10, 2 );
// add the actions to add functions :: type of slider infinite or not
add_action( 'admin_menu', 'slidetype_create_post_meta_box' );
add_action( 'save_post', 'slidetype_save_post_meta_box', 10, 2 );
//begin slides to show meta box
function slidestoshow_create_post_meta_box() {
add_meta_box( 'slidestoshow_meta_box', 'Slides to Show & Scroll (1-6)', 'slidestoshow_page_meta_box', 'page', 'normal', 'high' );
}
function slidestoshow_page_meta_box( $object, $box ) { ?>
<p>
<label for="slides-to-show-scroll">Slides to Show & Scroll (1-6)</label>
<!-- keep reference
<textarea name="second-excerpt" id="second-excerpt" cols="60" rows="4" tabindex="30" style="width: 97%;"><?php echo wp_specialchars( get_post_meta( $object->ID, 'Second Excerpt', true ), 1 ); ?></textarea>
-->
<input type="text" id="slides-to-show-scroll" name="slides-to-show-scroll" value="<?php echo wp_specialchars( get_post_meta( $object->ID, 'Slides to Show Scroll', true ), 1 ); ?>" size="10" />
<input type="hidden" name="slidestoshow_page_meta_box_nonce" value="<?php echo wp_create_nonce( plugin_basename( __FILE__ ) ); ?>" />
</p>
<?php }
// end create the meta box for slides to show
//begin slide type meta box
function slidetype_create_post_meta_box() {
add_meta_box( 'slidetype_meta_box', 'Infinte (true or false)', 'slidetype_page_meta_box', 'page', 'normal', 'high' );
}
function slidetype_page_meta_box( $object, $box ) { ?>
<p>
<label for="slide-type">Infinite (true or false)</label>
<input type="text" id="slide-type" name="slide-type" value="<?php echo wp_specialchars( get_post_meta( $object->ID, 'Slide Type', true ), 1 ); ?>" size="10" />
<input type="hidden" name="slidetype_page_meta_box_nonce" value="<?php echo wp_create_nonce( plugin_basename( __FILE__ ) ); ?>" />
</p>
<?php }
// end create the meta box for slides type
function slidestoshow_save_post_meta_box( $post_id, $post ) {
if ( !wp_verify_nonce( $_POST['slidestoshow_page_meta_box_nonce'], plugin_basename( __FILE__ ) ) )
return $post_id;
if ( !current_user_can( 'edit_post', $post_id ) )
return $post_id;
$meta_value = get_post_meta( $post_id, 'Slides to Show Scroll', true );
$new_meta_value = stripslashes( $_POST['slides-to-show-scroll'] );
if ( $new_meta_value && '' == $meta_value )
add_post_meta( $post_id, 'Slides to Show Scroll', $new_meta_value, true );
elseif ( $new_meta_value != $meta_value )
update_post_meta( $post_id, 'Slides to Show Scroll', $new_meta_value );
elseif ( '' == $new_meta_value && $meta_value )
delete_post_meta( $post_id, 'Slides to Show Scroll', $meta_value );
}
//end the save for slides to show
function slidetype_save_post_meta_box( $post_id, $post ) {
if ( !wp_verify_nonce( $_POST['slidetype_page_meta_box_nonce'], plugin_basename( __FILE__ ) ) )
return $post_id;
if ( !current_user_can( 'edit_post', $post_id ) )
return $post_id;
$meta_value = get_post_meta( $post_id, 'Slide Type', true );
$new_meta_value = stripslashes( $_POST['slide-type'] );
if ( $new_meta_value && '' == $meta_value )
add_post_meta( $post_id, 'Slide Type', $new_meta_value, true );
elseif ( $new_meta_value != $meta_value )
update_post_meta( $post_id, 'Slide Type', $new_meta_value );
elseif ( '' == $new_meta_value && $meta_value )
delete_post_meta( $post_id, 'Slide Type', $meta_value );
}
//end the save for slide type