2014-12-30 16:27:56 -05:00
< ? php
/**
* settings for taxonomy pages
*
* @package DisplayFeaturedImageGenesis
2015-01-10 09:42:54 -05:00
*
2015-01-10 10:45:16 -05:00
* @since 2.0.0
2014-12-30 16:27:56 -05:00
*/
class Display_Featured_Image_Genesis_Taxonomies {
2015-06-03 14:36:16 -04:00
protected $settings ;
2015-07-12 12:28:21 -04:00
/**
* set up all actions for adding featured images to taxonomies
* @since 2.0.0
*/
public function set_taxonomy_meta () {
$this -> settings = new Display_Featured_Image_Genesis_Settings ();
$args = array (
'public' => true ,
);
$output = 'names' ;
$taxonomies = get_taxonomies ( $args , $output );
foreach ( $taxonomies as $taxonomy ) {
add_action ( " { $taxonomy } _add_form_fields " , array ( $this , 'add_taxonomy_meta_fields' ), 5 , 2 );
add_action ( " { $taxonomy } _edit_form_fields " , array ( $this , 'edit_taxonomy_meta_fields' ), 5 , 2 );
add_action ( " edited_ { $taxonomy } " , array ( $this -> settings , 'save_taxonomy_custom_meta' ), 10 , 2 );
add_action ( " create_ { $taxonomy } " , array ( $this -> settings , 'save_taxonomy_custom_meta' ), 10 , 2 );
add_action ( 'load-edit-tags.php' , array ( $this , 'help' ) );
}
2015-08-08 07:28:13 -04:00
add_action ( 'split_shared_term' , array ( $this , 'split_shared_term' ) );
2015-06-03 14:36:16 -04:00
}
2015-01-01 19:17:41 -05:00
/**
2015-01-10 09:42:54 -05:00
* add featured image uploader to new term add
2015-01-01 19:17:41 -05:00
*/
public function add_taxonomy_meta_fields () {
2014-12-30 16:27:56 -05:00
2015-03-24 10:09:32 -04:00
echo '<div class="form-field term-image-wrap">' ;
2015-04-24 17:02:47 -04:00
printf ( '<label for="displayfeaturedimagegenesis[term_image]">%s</label>' ,
2015-08-08 07:28:13 -04:00
esc_attr__ ( 'Featured Image' , 'display-featured-image-genesis' )
2015-04-24 17:02:47 -04:00
);
2015-04-19 16:26:06 -04:00
echo '<input type="hidden" class="upload_image_id" id="term_image_id" name="displayfeaturedimagegenesis[term_image]" />' ;
2015-04-24 17:02:47 -04:00
printf ( '<input id="upload_default_image" type="button" class="upload_default_image button-secondary" value="%s" />' ,
2015-08-08 07:28:13 -04:00
esc_attr__ ( 'Select Image' , 'display-featured-image-genesis' )
2015-04-24 17:02:47 -04:00
);
printf ( '<input type="button" class="delete_image button-secondary" value="%s" />' ,
2015-08-08 07:28:13 -04:00
esc_attr__ ( 'Delete Image' , 'display-featured-image-genesis' )
2015-04-24 17:02:47 -04:00
);
echo '<p class="description">' ;
2015-08-08 07:28:13 -04:00
printf ( esc_attr__ ( 'Set Featured Image for new term.' , 'display-featured-image-genesis' ) );
2015-04-24 17:02:47 -04:00
echo '</p>' ;
2014-12-30 16:27:56 -05:00
echo '</div>' ;
}
2015-01-01 19:17:41 -05:00
/**
* edit term page
* @param term $term featured image input/display for individual term page
2015-01-10 09:42:54 -05:00
*
2015-01-01 19:17:41 -05:00
* @return preview/uploader upload/preview featured image for term
2015-01-10 09:42:54 -05:00
*
2015-01-10 10:45:16 -05:00
* @since 2.0.0
2015-01-01 19:17:41 -05:00
*/
public function edit_taxonomy_meta_fields ( $term ) {
2014-12-30 16:27:56 -05:00
2015-01-08 12:39:23 -05:00
$t_id = $term -> term_id ;
$displaysetting = get_option ( " displayfeaturedimagegenesis_ $t_id " );
2015-01-10 09:42:54 -05:00
$medium = get_option ( 'medium_size_w' );
2015-04-10 09:32:57 -04:00
$id = '' ;
2015-01-01 19:17:41 -05:00
2015-03-25 10:51:51 -04:00
echo '<tr class="form-field term-image-wrap">' ;
2015-04-24 17:02:47 -04:00
printf ( '<th scope="row" valign="top"><label for="displayfeaturedimagegenesis[term_image]">%s</label></th>' ,
2015-08-08 07:28:13 -04:00
esc_attr__ ( 'Featured Image' , 'display-featured-image-genesis' )
2015-04-24 17:02:47 -04:00
);
2015-04-19 16:26:06 -04:00
echo '<td>' ;
2015-05-30 17:27:45 -04:00
$id = $displaysetting [ 'term_image' ];
$name = 'displayfeaturedimagegenesis[term_image]' ;
if ( ! empty ( $id ) ) {
2015-06-03 14:36:16 -04:00
echo wp_kses_post ( $this -> settings -> render_image_preview ( $id ) );
2015-04-19 16:26:06 -04:00
}
2015-06-03 14:36:16 -04:00
$this -> settings -> render_buttons ( $id , $name );
2015-04-24 17:02:47 -04:00
echo '<p class="description">' ;
printf (
2015-08-08 07:28:13 -04:00
esc_attr__ ( 'Set Featured Image for %1$s.' , 'display-featured-image-genesis' ),
2015-04-24 17:02:47 -04:00
esc_attr ( $term -> name )
);
echo '</p>' ;
2015-04-19 16:26:06 -04:00
echo '</td>' ;
2014-12-30 16:27:56 -05:00
echo '</tr>' ;
}
2015-01-10 09:42:54 -05:00
/**
* Help tab for media screen
* @return help tab with verbose information for plugin
*
2015-01-10 10:45:16 -05:00
* @since 2.0.0
2015-01-10 09:42:54 -05:00
*/
public function help () {
$screen = get_current_screen ();
2015-05-30 09:54:32 -04:00
$term_help = '<h3>' . __ ( 'Set a Featured Image' , 'display-featured-image-genesis' ) . '</h3>' ;
$term_help .= '<p>' . __ ( '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' ) . '</p>' ;
2015-01-10 09:42:54 -05:00
$screen -> add_help_tab ( array (
'id' => 'displayfeaturedimage_term-help' ,
'title' => __ ( 'Featured Image' , 'display-featured-image-genesis' ),
'content' => $term_help ,
) );
}
2015-08-08 07:28:13 -04:00
/**
* Create new term meta record for split terms.
*
* When WordPress splits terms, ensure that the term meta gets preserved for the newly created term.
*
* @since 2.3.0
*
* @param integer @old_term_id The ID of the term being split.
* @param integer @new_term_id The ID of the newly created term.
*
*/
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 " );
if ( ! isset ( $old_setting ) ) {
return ;
}
$new_setting = $old_setting ;
update_option ( " displayfeaturedimagegenesis_ $new_term_id " , $new_setting );
}
2015-01-01 17:28:19 -05:00
}