th.column-thumb {width:60px;} .form-field img.taxonomy-image {border:1px solid #eee;max-width:300px;max-height:300px;} .inline-edit-row fieldset .thumb label span.title {width:48px;height:48px;border:1px solid #eee;display:inline-block;} .column-thumb span {width:48px;height:48px;border:1px solid #eee;display:inline-block;} .inline-edit-row fieldset .thumb img,.column-thumb img {width:48px;height:48px;} '; } // add image field in add form function z_add_texonomy_field() { if (get_bloginfo('version') >= 3.5) wp_enqueue_media(); else { wp_enqueue_style('thickbox'); wp_enqueue_script('thickbox'); } echo '

'.z_script(); } // add image field in edit form function z_edit_texonomy_field($taxonomy) { if (get_bloginfo('version') >= 3.5) wp_enqueue_media(); else { wp_enqueue_style('thickbox'); wp_enqueue_script('thickbox'); } if (z_taxonomy_image_url( $taxonomy->term_id, NULL, TRUE ) == Z_IMAGE_PLACEHOLDER) $image_url = ""; else $image_url = z_taxonomy_image_url( $taxonomy->term_id, NULL, TRUE ); echo '

'.z_script(); } // upload using wordpress upload function z_script() { return ''; } // save our taxonomy image while edit or save term add_action('edit_term','z_save_taxonomy_image'); add_action('create_term','z_save_taxonomy_image'); function z_save_taxonomy_image($term_id) { if(isset($_POST['taxonomy_image'])) update_option('z_taxonomy_image'.$term_id, $_POST['taxonomy_image'], NULL); } // get attachment ID by image url function z_get_attachment_id_by_url($image_src) { global $wpdb; $query = $wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE guid = %s", $image_src); $id = $wpdb->get_var($query); return (!empty($id)) ? $id : NULL; } // get taxonomy image url for the given term_id (Place holder image by default) function z_taxonomy_image_url($term_id = NULL, $size = 'full', $return_placeholder = FALSE) { if (!$term_id) { if (is_category()) $term_id = get_query_var('cat'); elseif (is_tag()) $term_id = get_query_var('tag_id'); elseif (is_tax()) { $current_term = get_term_by('slug', get_query_var('term'), get_query_var('taxonomy')); $term_id = $current_term->term_id; } } $taxonomy_image_url = get_option('z_taxonomy_image'.$term_id); if(!empty($taxonomy_image_url)) { $attachment_id = z_get_attachment_id_by_url($taxonomy_image_url); if(!empty($attachment_id)) { $taxonomy_image_url = wp_get_attachment_image_src($attachment_id, $size); $taxonomy_image_url = $taxonomy_image_url[0]; } } if ($return_placeholder) return ($taxonomy_image_url != '') ? $taxonomy_image_url : Z_IMAGE_PLACEHOLDER; else return $taxonomy_image_url; } function z_quick_edit_custom_box($column_name, $screen, $name) { if ($column_name == 'thumb') echo '
'; } /** * Thumbnail column added to category admin. * * @access public * @param mixed $columns * @return void */ function z_taxonomy_columns( $columns ) { $new_columns = array(); $new_columns['cb'] = $columns['cb']; $new_columns['thumb'] = __('Image', 'categories-images'); unset( $columns['cb'] ); return array_merge( $new_columns, $columns ); } /** * Thumbnail column value added to category admin. * * @access public * @param mixed $columns * @param mixed $column * @param mixed $id * @return void */ function z_taxonomy_column( $columns, $column, $id ) { if ( $column == 'thumb' ) $columns = '' . __('Thumbnail', 'categories-images') . ''; return $columns; } // Change 'insert into post' to 'use this image' function z_change_insert_button_text($safe_text, $text) { return str_replace("Insert into Post", "Use this image", $text); } // Style the image in category list if ( strpos( $_SERVER['SCRIPT_NAME'], 'edit-tags.php' ) > 0 ) { add_action( 'admin_head', 'z_add_style' ); add_action('quick_edit_custom_box', 'z_quick_edit_custom_box', 10, 3); add_filter("attribute_escape", "z_change_insert_button_text", 10, 2); } // New menu submenu for plugin options in Settings menu add_action('admin_menu', 'z_options_menu'); function z_options_menu() { add_options_page(__('Categories Images settings', 'categories-images'), __('Categories Images', 'categories-images'), 'manage_options', 'zci-options', 'zci_options'); add_action('admin_init', 'z_register_settings'); } // Register plugin settings function z_register_settings() { register_setting('zci_options', 'zci_options', 'z_options_validate'); add_settings_section('zci_settings', __('Categories Images settings', 'categories-images'), 'z_section_text', 'zci-options'); add_settings_field('z_excluded_taxonomies', __('Excluded Taxonomies', 'categories-images'), 'z_excluded_taxonomies', 'zci-options', 'zci_settings'); } // Settings section description function z_section_text() { echo '

'.__('Please select the taxonomies you want to exclude it from Categories Images plugin', 'categories-images').'

'; } // Excluded taxonomies checkboxs function z_excluded_taxonomies() { $options = get_option('zci_options'); $disabled_taxonomies = array('nav_menu', 'link_category', 'post_format'); foreach (get_taxonomies() as $tax) : if (in_array($tax, $disabled_taxonomies)) continue; ?> />

term_id; } } $taxonomy_image_url = get_option('z_taxonomy_image'.$term_id); if(!empty($taxonomy_image_url)) { $attachment_id = z_get_attachment_id_by_url($taxonomy_image_url); if(!empty($attachment_id)) $taxonomy_image = wp_get_attachment_image($attachment_id, $size, FALSE, $attr); else { $image_attr = ''; if(is_array($attr)) { if(!empty($attr['class'])) $image_attr .= ' class="'.$attr['class'].'" '; if(!empty($attr['alt'])) $image_attr .= ' alt="'.$attr['alt'].'" '; if(!empty($attr['width'])) $image_attr .= ' width="'.$attr['width'].'" '; if(!empty($attr['height'])) $image_attr .= ' height="'.$attr['height'].'" '; if(!empty($attr['title'])) $image_attr .= ' title="'.$attr['title'].'" '; } $taxonomy_image = ''; } } else{ $taxonomy_image = ''; } if ($echo) echo $taxonomy_image; else return $taxonomy_image; }