Created
November 18, 2014 16:13
-
-
Save cpaul007/3ceae365cc5cda7da993 to your computer and use it in GitHub Desktop.
Custom Post Type: Slider
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/*-----------------------------------------------------------------------------------*/ | |
/* Custom Post Type - Slider */ | |
/*-----------------------------------------------------------------------------------*/ | |
if ( ! function_exists( 'gd_add_cpt_slider' ) ) { | |
function gd_add_cpt_slider() { | |
// "Slider" Custom Post Type | |
$labels = array( | |
'name' => _x( 'Slider', 'post type general name', 'genesisdeveloper' ), | |
'singular_name' => _x( 'Slider', 'post type singular name', 'genesisdeveloper' ), | |
'add_new' => _x( 'Add New', 'slide', 'genesisdeveloper' ), | |
'add_new_item' => __( 'Add New Slider', 'genesisdeveloper' ), | |
'edit_item' => __( 'Edit Slider', 'genesisdeveloper' ), | |
'new_item' => __( 'New Slider', 'genesisdeveloper' ), | |
'view_item' => __( 'View Slider', 'genesisdeveloper' ), | |
'search_items' => __( 'Search Slider', 'genesisdeveloper' ), | |
'not_found' => __( 'No slider found', 'genesisdeveloper' ), | |
'not_found_in_trash' => __( 'No slider found in Trash', 'genesisdeveloper' ), | |
'parent_item_colon' => '' | |
); | |
$args = array( | |
'labels' => $labels, | |
'public' => true, | |
'publicly_queryable' => true, | |
'show_ui' => true, | |
'query_var' => true, | |
'rewrite' => array( 'slug' => 'slider' ), | |
'capability_type' => 'post', | |
'hierarchical' => false, | |
'menu_icon' => 'dashicons-slides', | |
'menu_position' => null, | |
'has_archive' => true, | |
'supports' => array( 'title', 'editor', 'thumbnail' ) | |
); | |
$args['exclude_from_search'] = true; | |
register_post_type( 'slider', $args ); | |
} | |
add_action( 'init', 'gd_add_cpt_slider' ); | |
add_action( 'add_meta_boxes', 'gd_add_slider_custom_box' ); | |
add_action( 'save_post', 'gd_slider_metabox_save', 1, 2 ); | |
function gd_add_slider_custom_box(){ | |
add_meta_box('slider_details', __( 'Slider Settings', 'cs' ), 'slider_meta_box', 'slider', 'side', 'high'); | |
} | |
function slider_meta_box(){ | |
wp_nonce_field( 'gd_slider_metabox_save', 'gd_slider_metabox_nonce' ); | |
$readMoretxt = (get_post_meta(get_the_ID(), '_readmore_txt', true)) ? get_post_meta(get_the_ID(), '_readmore_txt', true) : "Read More"; | |
echo '<div style="width: 90%;">'; | |
printf( '<p><label>%s <input type="checkbox" id="show_content" name="sld[_hide_content]" value="yes" %s/></label></p>', __( 'Disable the title & content', 'cs' ), checked("yes", esc_attr( get_post_meta(get_the_ID(), '_hide_content', true) ), false) ); | |
printf( '<p><span class="description">%s</span></p>', __( 'Hide the title, content & read more button from slider image', 'genesisdeveloper' ) ); | |
echo '</div>'; | |
echo '<div style="width: 90%;">'; | |
printf( '<p><label>%s<input type="text" name="sld[_readmore_url]" id="readmore_url" class="large-text" value="%s" /></label></p>', __( 'Read More URL: ', 'cs' ), esc_attr( get_post_meta(get_the_ID(), '_readmore_url', true) ) ); | |
printf( '<p><span class="description">%s</span></p>', __( 'Link of Read More Button', 'genesisdeveloper' ) ); | |
echo '</div>'; | |
echo '<div style="width: 90%;">'; | |
printf( '<p><label>%s<input type="text" name="sld[_readmore_txt]" id="readmore_txt" class="large-text" value="%s" /></label></p>', __( 'Read More Text: ', 'cs' ), esc_attr( $readMoretxt ) ); | |
printf( '<p><span class="description">%s</span></p>', __( 'Replace the Read More button text', 'genesisdeveloper' ) ); | |
echo '</div><br style="clear: both;" />'; | |
} | |
function gd_slider_metabox_save( $post_id, $post ) { | |
/** Run only on testimonials post type save */ | |
if ( 'slider' == $post->post_type ) { | |
/** Verify the nonce */ | |
if ( ! wp_verify_nonce( $_POST['gd_slider_metabox_nonce'], 'gd_slider_metabox_save' ) ) | |
return; | |
/** Don't try to save the data under autosave, ajax, or future post */ | |
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; | |
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) return; | |
if ( defined( 'DOING_CRON' ) && DOING_CRON ) return; | |
/** Check permissions */ | |
if ( ! current_user_can( 'edit_post', $post_id ) ) | |
return; | |
$sld_details = $_POST['sld']; | |
/** Store the custom fields */ | |
foreach ( (array) $sld_details as $key => $value ) { | |
/** Save/Update/Delete */ | |
if ( $value ) { | |
update_post_meta($post->ID, $key, $value); | |
} else { | |
delete_post_meta($post->ID, $key); | |
} | |
if(!isset($sld_details['_hide_content'])){ | |
delete_post_meta($post->ID, '_hide_content'); | |
} | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment