diff --git a/includes/widgets/class-displayfeaturedimagegenesis-widgets-form.php b/includes/widgets/class-displayfeaturedimagegenesis-widgets-form.php index 80db44d..31bc27f 100644 --- a/includes/widgets/class-displayfeaturedimagegenesis-widgets-form.php +++ b/includes/widgets/class-displayfeaturedimagegenesis-widgets-form.php @@ -146,6 +146,30 @@ class DisplayFeaturedImageGenesisWidgetsForm { ); } + /** + * Get the archive fields (used in term and CPT widgets). + * + * @return array + */ + public function get_archive_fields() { + return array( + array( + 'method' => 'checkbox', + 'args' => array( + 'id' => 'archive_link', + 'label' => __( 'Show Archive Link', 'display-featured-image-genesis' ), + ), + ), + array( + 'method' => 'text', + 'args' => array( + 'id' => 'archive_link_text', + 'label' => __( 'Archive Link Text', 'display-featured-image-genesis' ), + ), + ), + ); + } + /** * Build boxes with fields. * diff --git a/includes/widgets/displayfeaturedimagegenesis-cpt-archive-widget.php b/includes/widgets/displayfeaturedimagegenesis-cpt-archive-widget.php index ee85e1e..e6b34d6 100644 --- a/includes/widgets/displayfeaturedimagegenesis-cpt-archive-widget.php +++ b/includes/widgets/displayfeaturedimagegenesis-cpt-archive-widget.php @@ -52,13 +52,15 @@ class Display_Featured_Image_Genesis_Widget_CPT extends WP_Widget { */ public function defaults() { return array( - 'title' => '', - 'post_type' => 'post', - 'show_image' => 0, - 'image_alignment' => 'alignnone', - 'image_size' => 'medium', - 'show_title' => 0, - 'show_content' => 0, + 'title' => '', + 'post_type' => 'post', + 'show_image' => 0, + 'image_alignment' => 'alignnone', + 'image_size' => 'medium', + 'show_title' => 0, + 'show_content' => 0, + 'archive_link' => 0, + 'archive_link_text' => __( 'View Content Type Archive', 'display-featured-image-genesis' ), ); } @@ -93,6 +95,7 @@ class Display_Featured_Image_Genesis_Widget_CPT extends WP_Widget { $this->do_image( $instance, $post_type, $title, $permalink ); $this->do_title( $instance, $permalink, $title ); $this->do_intro_text( $instance ); + $this->do_archive_link( $permalink, $instance ); echo $args['after_widget']; } @@ -267,6 +270,22 @@ class Display_Featured_Image_Genesis_Widget_CPT extends WP_Widget { return $intro_text; } + /** + * Echo the CPT archive link. + * + * @param $permalink + * @param $instance + */ + protected function do_archive_link( $permalink, $instance ) { + if ( ! $instance['archive_link'] || ! $instance['archive_link_text'] ) { + return; + } + printf( '

%s

', + esc_url( $permalink ), + esc_html( $instance['archive_link_text'] ) + ); + } + /** * Update a particular instance. * @@ -299,7 +318,8 @@ class Display_Featured_Image_Genesis_Widget_CPT extends WP_Widget { return array_merge( $this->get_post_type_fields(), $form->get_text_fields(), - $form->get_image_fields() + $form->get_image_fields(), + $form->get_archive_fields() ); } @@ -339,6 +359,10 @@ class Display_Featured_Image_Genesis_Widget_CPT extends WP_Widget { 'image' => $form->get_image_fields(), ), 'genesis-widget-column-box-top' ); + $form->do_boxes( array( + 'archive' => $form->get_archive_fields(), + ) ); + echo ''; } diff --git a/includes/widgets/displayfeaturedimagegenesis-taxonomy-widget.php b/includes/widgets/displayfeaturedimagegenesis-taxonomy-widget.php index 346613f..6b6a5c9 100644 --- a/includes/widgets/displayfeaturedimagegenesis-taxonomy-widget.php +++ b/includes/widgets/displayfeaturedimagegenesis-taxonomy-widget.php @@ -53,14 +53,16 @@ class Display_Featured_Image_Genesis_Widget_Taxonomy extends WP_Widget { */ public function defaults() { return array( - 'title' => '', - 'taxonomy' => 'category', - 'term' => '', - 'show_image' => 0, - 'image_alignment' => '', - 'image_size' => 'medium', - 'show_title' => 0, - 'show_content' => 0, + 'title' => '', + 'taxonomy' => 'category', + 'term' => '', + 'show_image' => 0, + 'image_alignment' => '', + 'image_size' => 'medium', + 'show_title' => 0, + 'show_content' => 0, + 'archive_link' => 0, + 'archive_link_text' => __( 'View Term Archive', 'display-featured-image-genesis' ), ); } @@ -103,6 +105,8 @@ class Display_Featured_Image_Genesis_Widget_Taxonomy extends WP_Widget { $this->do_content( $term, $instance ); + $this->do_archive_link( $term, $instance ); + echo $args['after_widget']; } @@ -176,6 +180,22 @@ class Display_Featured_Image_Genesis_Widget_Taxonomy extends WP_Widget { echo genesis_html5() ? '' : ''; } + /** + * Echo the term archive link. + * + * @param $term + * @param $instance + */ + protected function do_archive_link( $term, $instance ) { + if ( ! $instance['archive_link'] || ! $instance['archive_link_text'] ) { + return; + } + printf( '

%s

', + esc_url( get_term_link( $term ) ), + esc_html( $instance['archive_link_text'] ) + ); + } + /** * Update a particular instance. * @@ -203,10 +223,12 @@ class Display_Featured_Image_Genesis_Widget_Taxonomy extends WP_Widget { */ public function get_fields( $instance = array() ) { $form = $this->get_form_class( $instance ); + return array_merge( $form->get_text_fields(), $this->get_taxonomy_fields( $instance ), - $form->get_image_fields() + $form->get_image_fields(), + $form->get_archive_fields() ); } @@ -248,11 +270,16 @@ class Display_Featured_Image_Genesis_Widget_Taxonomy extends WP_Widget { 'image' => $form->get_image_fields(), ), 'genesis-widget-column-box-top' ); + $form->do_boxes( array( + 'archive' => $form->get_archive_fields(), + ) ); + echo ''; } /** * Get the plugin widget forms class. + * * @param array $instance * * @return \DisplayFeaturedImageGenesisWidgetsForm