2015-01-02 20:28:33 -05:00
< ? php
class Display_Featured_Image_Genesis_Custom_Post_Types {
2015-01-03 09:10:16 -05:00
// protected $post_type;
2015-01-02 20:28:33 -05:00
public function set_up_cpts () {
$args = array (
'public' => true ,
'_builtin' => false ,
'has_archive' => true ,
);
$output = 'names' ;
2015-01-03 09:10:16 -05:00
$post_types = get_post_types ( $args , $output );
2015-01-02 20:28:33 -05:00
2015-01-03 09:10:16 -05:00
foreach ( $post_types as $post_type ) {
2015-01-02 20:28:33 -05:00
add_submenu_page (
" edit.php?post_type= $post_type " ,
__ ( 'Featured Image' , 'display-featured-image-genesis' ),
__ ( 'Featured Image' , 'display-featured-image-genesis' ),
'manage_categories' ,
" displayfeaturedimagegenesis- $post_type " ,
array ( $this , 'do_settings_form' )
);
2015-01-03 09:10:16 -05:00
register_setting ( 'displayfeaturedimagegenesis_cpt' , 'displayfeaturedimagegenesis-cpt' /*, array( $this, 'do_validation_things' )*/ );
2015-01-02 20:28:33 -05:00
}
add_action ( 'admin_init' , array ( $this , 'settings' ) );
}
/**
* create CPT settings form
* @return form Display Featured Image for Genesis for CPT
*
* @since x.y.z
*/
public function do_settings_form () {
$page_title = get_admin_page_title ();
echo '<div class="wrap">' ;
echo '<h2>' . $page_title . '</h2>' ;
echo '<form action="options.php" method="post">' ;
settings_fields ( 'displayfeaturedimagegenesis_cpt' );
do_settings_sections ( 'displayfeaturedimagegenesis_cpt' );
// wp_nonce_field( 'displayfeaturedimagegenesis_save-settings', 'displayfeaturedimagegenesis_nonce', false );
submit_button ();
// settings_errors();
echo '</form>' ;
echo '</div>' ;
}
public function settings () {
add_settings_section (
'display_featured_image_cpt_section' ,
__ ( 'Optional Featured Image' , 'display-featured-image-genesis' ),
array ( $this , 'section_description' ),
'displayfeaturedimagegenesis_cpt'
);
add_settings_field (
2015-01-03 09:10:16 -05:00
'displayfeaturedimagegenesis-cpt' ,
2015-01-02 20:28:33 -05:00
'<label for="displayfeaturedimagegenesis-cpt">' . __ ( 'Custom Post Type Featured Image' , 'display-featured-image-genesis' ) . '</label>' ,
array ( $this , 'set_cpt_image' ),
'displayfeaturedimagegenesis_cpt' ,
'display_featured_image_cpt_section'
);
}
/**
* Section description
* @return section description
*
* @since 1.1.0
*/
public function section_description () {
2015-01-03 09:10:16 -05:00
$screen = get_current_screen ();
$post_type = $screen -> post_type ;
echo '<p>' . sprintf (
__ ( 'You may optionally set a featured image for the %s archive to use.' , 'display-featured-image-genesis' ),
$post_type
) . '</p>' ;
2015-01-02 20:28:33 -05:00
}
/**
* Default image uploader
*
* @return image
*
* @since 1.2.1
*/
public function set_cpt_image () {
2015-01-03 09:10:16 -05:00
$item = Display_Featured_Image_Genesis_Common :: get_image_variables ();
$screen = get_current_screen ();
$post_type = $screen -> post_type ;
$setting = get_option ( 'displayfeaturedimagegenesis-cpt' );
2015-01-02 20:28:33 -05:00
2015-01-03 09:10:16 -05:00
if ( empty ( $setting [ $post_type ] ) ) {
$setting [ $post_type ] = '' ;
}
if ( ! empty ( $setting [ $post_type ] ) ) {
$id = Display_Featured_Image_Genesis_Common :: get_image_id ( $setting [ $post_type ] );
$preview = wp_get_attachment_image_src ( $id , 'medium' );
2015-01-02 20:28:33 -05:00
echo '<div id="upload_logo_preview">' ;
echo '<img src="' . esc_url ( $preview [ 0 ] ) . '" />' ;
echo '</div>' ;
}
2015-01-03 09:10:16 -05:00
echo '<input type="url" id="default_image_url" name="displayfeaturedimagegenesis-cpt[' . $post_type . ']" value="' . esc_url ( $setting [ $post_type ] ) . '" />' ;
2015-01-02 20:28:33 -05:00
echo '<input id="upload_default_image" type="button" class="upload_default_image button" value="' . __ ( 'Select Image' , 'display-featured-image-genesis' ) . '" />' ;
echo '<p class="description">' . sprintf (
2015-01-03 09:10:16 -05:00
__ ( 'If you would like to use a featured image for the custom post type archive, upload it here. Must be at least %1$s pixels wide.' , 'display-featured-image-genesis' ),
2015-01-02 20:28:33 -05:00
absint ( $item -> large + 1 )
) . '</p>' ;
}
}