From bdbb6124b73c54f8b2a7380c5dbdeb699318b350 Mon Sep 17 00:00:00 2001 From: Robin Cornett Date: Mon, 13 May 2019 11:30:28 -0400 Subject: [PATCH] Update taxonomy/term meta image Refactor to use helper functions for image preview and buttons. Use page constant where possible. Deprecate options method, maybe remove. --- ...displayfeaturedimagegenesis-taxonomies.php | 104 +++++++++--------- 1 file changed, 53 insertions(+), 51 deletions(-) diff --git a/includes/class-displayfeaturedimagegenesis-taxonomies.php b/includes/class-displayfeaturedimagegenesis-taxonomies.php index 879e4e7..c3a29f5 100644 --- a/includes/class-displayfeaturedimagegenesis-taxonomies.php +++ b/includes/class-displayfeaturedimagegenesis-taxonomies.php @@ -13,15 +13,16 @@ */ class Display_Featured_Image_Genesis_Taxonomies extends Display_Featured_Image_Genesis_Helper { - protected $settings; - /** * set up all actions for adding featured images to taxonomies * @since 2.0.0 */ public function set_taxonomy_meta() { + if ( ! function_exists( 'get_term_meta' ) ) { + return; + } - register_meta( 'term', 'displayfeaturedimagegenesis', array( $this, 'validate_taxonomy_image' ) ); + register_meta( 'term', $this->page, array( $this, 'validate_taxonomy_image' ) ); $args = array( 'public' => true, @@ -60,15 +61,12 @@ class Display_Featured_Image_Genesis_Taxonomies extends Display_Featured_Image_G ?>
- - - - - + page, $this->page ); ?> + + render_buttons( false, "{$this->page}[term_image]" ); ?>

- '; - printf( '', - esc_attr__( 'Featured Image', 'display-featured-image-genesis' ) - ); - echo ''; - $name = 'displayfeaturedimagegenesis[term_image]'; - if ( $image_id ) { - echo wp_kses_post( $this->render_image_preview( $image_id, $term->name ) ); - } - $this->render_buttons( $image_id, $name ); - echo '

'; - printf( - esc_attr__( 'Set Featured Image for %1$s.', 'display-featured-image-genesis' ), - esc_attr( $term->name ) - ); - echo '

'; - echo ''; + printf( + '', + esc_attr( $this->page ), + esc_attr__( 'Featured Image', 'display-featured-image-genesis' ) + ); + echo ''; + $name = "{$this->page}[term_image]"; + if ( $image_id ) { + echo wp_kses_post( $this->render_image_preview( $image_id, $term->name ) ); + } + $this->render_buttons( $image_id, $name ); + echo '

'; + printf( + /* translators: name of the term */ + esc_attr__( 'Set Featured Image for %1$s.', 'display-featured-image-genesis' ), + esc_attr( $term->name ) + ); + echo '

'; + echo ''; echo ''; } @@ -109,20 +110,20 @@ class Display_Featured_Image_Genesis_Taxonomies extends Display_Featured_Image_G * @since 2.0.0 */ public function save_taxonomy_custom_meta( $term_id ) { - - if ( ! isset( $_POST['displayfeaturedimagegenesis'] ) ) { + $input = filter_input( INPUT_POST, $this->page, FILTER_DEFAULT, FILTER_FORCE_ARRAY ); + if ( ! $input ) { return; } - $input = $_POST['displayfeaturedimagegenesis']; - $displaysetting = get_option( "displayfeaturedimagegenesis_$term_id", false ); - $action = function_exists( 'get_term_meta' ) ? 'update_term_meta' : 'update_options_meta'; - $this->$action( $term_id, $input, $displaysetting ); + $displaysetting = get_option( "{$this->page}_{$term_id}", false ); + $this->update_term_meta( $term_id, $input, $displaysetting ); } /** * update/delete term meta - * @param int $term_id term id - * @param array $displaysetting old option, if it exists + * + * @param int $term_id term id + * @param $input + * @param array $displaysetting old option, if it exists * * @since 2.4.0 */ @@ -130,17 +131,17 @@ class Display_Featured_Image_Genesis_Taxonomies extends Display_Featured_Image_G $new_image = $this->validate_taxonomy_image( $input['term_image'] ); if ( null === $new_image ) { // if the new image is empty, delete term_meta and old option - delete_term_meta( $term_id, 'displayfeaturedimagegenesis' ); - delete_option( "displayfeaturedimagegenesis_$term_id" ); + delete_term_meta( $term_id, $this->page ); + delete_option( "{$this->page}_{$term_id}" ); } elseif ( false !== $new_image ) { // if the new image is different from the existing term meta - $current_setting = get_term_meta( $term_id, 'displayfeaturedimagegenesis' ); + $current_setting = get_term_meta( $term_id, $this->page ); if ( $current_setting !== $new_image ) { - update_term_meta( $term_id, 'displayfeaturedimagegenesis', (int) $new_image ); + update_term_meta( $term_id, $this->page, (int) $new_image ); } // if there is a valid image, and the old setting exists if ( $displaysetting ) { - delete_option( "displayfeaturedimagegenesis_$term_id" ); + delete_option( "{$this->page}_{$term_id}" ); } } } @@ -153,6 +154,7 @@ class Display_Featured_Image_Genesis_Taxonomies extends Display_Featured_Image_G * @since 2.4.0 */ protected function update_options_meta( $term_id, $input, $displaysetting ) { + _deprecated_function( __FUNCTION__, '3.1.0' ); $cat_keys = array_keys( $input ); $is_updated = false; foreach ( $cat_keys as $key ) { @@ -163,7 +165,7 @@ class Display_Featured_Image_Genesis_Taxonomies extends Display_Featured_Image_G } $displaysetting[ $key ] = $this->validate_taxonomy_image( $input[ $key ] ); if ( null === $displaysetting[ $key ] ) { - delete_option( "displayfeaturedimagegenesis_$term_id" ); + delete_option( "{$this->page}_{$term_id}" ); } elseif ( false !== $displaysetting[ $key ] ) { $is_updated = true; } @@ -171,7 +173,7 @@ class Display_Featured_Image_Genesis_Taxonomies extends Display_Featured_Image_G } // Save the option array. if ( $is_updated ) { - update_option( "displayfeaturedimagegenesis_$term_id", $displaysetting ); + update_option( "{$this->page}_{$term_id}", $displaysetting ); } } @@ -210,12 +212,13 @@ class Display_Featured_Image_Genesis_Taxonomies extends Display_Featured_Image_G $term_help = '

' . __( 'Set Featured Image', 'display-featured-image-genesis' ) . '

'; $term_help .= '

' . __( 'You may set a featured image for your terms. This image will be used on the term archive page, and as a fallback image on a single post page if it does not have a featured image of its own.', 'display-featured-image-genesis' ) . '

'; - $screen->add_help_tab( array( - 'id' => 'displayfeaturedimage_term-help', - 'title' => __( 'Featured Image', 'display-featured-image-genesis' ), - 'content' => $term_help, - ) ); - + $screen->add_help_tab( + array( + 'id' => 'displayfeaturedimage_term-help', + 'title' => __( 'Featured Image', 'display-featured-image-genesis' ), + 'content' => $term_help, + ) + ); } /** @@ -231,8 +234,8 @@ class Display_Featured_Image_Genesis_Taxonomies extends Display_Featured_Image_G */ public function split_shared_term( $old_term_id, $new_term_id ) { - $old_setting = get_option( "displayfeaturedimagegenesis_$old_term_id" ); - $new_setting = get_option( "displayfeaturedimagegenesis_$new_term_id" ); + $old_setting = get_option( "{$this->page}_{$old_term_id}" ); + $new_setting = get_option( "{$this->page}_{$new_term_id}" ); if ( ! isset( $old_setting ) ) { return; @@ -240,7 +243,6 @@ class Display_Featured_Image_Genesis_Taxonomies extends Display_Featured_Image_G $new_setting = $old_setting; - update_option( "displayfeaturedimagegenesis_$new_term_id", $new_setting ); - + update_option( "{$this->page}_{$new_term_id}", $new_setting ); } }