diff --git a/includes/class-displayfeaturedimagegenesis-helper.php b/includes/class-displayfeaturedimagegenesis-helper.php index 108a813..5f7cb3b 100644 --- a/includes/class-displayfeaturedimagegenesis-helper.php +++ b/includes/class-displayfeaturedimagegenesis-helper.php @@ -118,6 +118,26 @@ class Display_Featured_Image_Genesis_Helper { return $setting; } + /** + * Build a checkbox array. + * @param $args + */ + public function do_checkbox_array( $args ) { + $built_in = array( 'post', 'page' ); + $post_types = $this->get_content_types(); + $post_types = array_merge( $built_in, $post_types ); + foreach ( $post_types as $post_type ) { + $object = get_post_type_object( $post_type ); + $type_args = array( + 'setting' => "{$args['setting']}][{$post_type}", + 'label' => $object->label, + 'setting_name' => $args['setting'], + 'name' => $post_type, + ); + $this->do_checkbox( $type_args ); + } + } + /** * Generic callback to display a field description. * @param string $args setting name used to identify description callback diff --git a/includes/class-displayfeaturedimagegenesis-settings.php b/includes/class-displayfeaturedimagegenesis-settings.php index 2ce629b..9c7d5be 100644 --- a/includes/class-displayfeaturedimagegenesis-settings.php +++ b/includes/class-displayfeaturedimagegenesis-settings.php @@ -209,6 +209,13 @@ class Display_Featured_Image_Genesis_Settings extends Display_Featured_Image_Gen 'section' => 'main', 'args' => array( 'setting' => 'thumbnails', 'label' => __( 'Use term/post type fallback images for content archives?', 'display-featured-image-genesis' ) ), ), + array( + 'id' => 'skip', + 'title' => __( 'Skip Content Types', 'display-featured-image-genesis' ), + 'callback' => 'do_checkbox_array', + 'section' => 'main', + 'args' => array( 'setting' => 'skip' ), + ), array( 'id' => 'post_types][search', 'title' => __( 'Search Results', 'display-featured-image-genesis' ), @@ -325,20 +332,15 @@ class Display_Featured_Image_Genesis_Settings extends Display_Featured_Image_Gen } if ( is_object( $args['post_type'] ) ) { - $skip_args = array( - 'setting' => "skip][{$post_type}", - 'label' => sprintf( __( 'Never show a featured image for %s.', 'display-featured-image-genesis' ), esc_attr( $args['post_type']->label ) ), - 'setting_name' => 'skip', - 'name' => $post_type, - ); - $this->do_checkbox( $skip_args ); $fallback_args = array( 'setting' => "fallback][{$post_type}", 'label' => sprintf( __( 'Always use a fallback image for %s.', 'display-featured-image-genesis' ), esc_attr( $args['post_type']->label ) ), 'setting_name' => 'fallback', 'name' => $post_type, ); + echo '

'; $this->do_checkbox( $fallback_args ); + echo '

'; } $id = $this->setting['post_type'][ $post_type ]; $name = 'displayfeaturedimagegenesis[post_type][' . esc_attr( $post_type ) . ']'; @@ -408,9 +410,8 @@ class Display_Featured_Image_Genesis_Settings extends Display_Featured_Image_Gen $size_to_check = get_option( 'medium_size_w' ); // sanitize - $new_value['post_type'][ $object->name ] = $this->validate_image( $new_value['post_type'][ $object->name ], $old_value, $label, $size_to_check ); - $new_value['skip'][ $object->name ] = $this->one_zero( $new_value['skip'][ $object->name ] ); - $new_value['fallback'][ $object->name ] = $this->one_zero( $new_value['fallback'][ $object->name ] ); + $new_value['post_type'][ $post_type ] = $this->validate_image( $new_value['post_type'][ $post_type ], $old_value, $label, $size_to_check ); + $new_value['fallback'][ $post_type ] = $this->one_zero( $new_value['fallback'][ $post_type ] ); } return $new_value;