From 7160b7cdaa8794bf7bec75dac13782420aec8690 Mon Sep 17 00:00:00 2001 From: Robin Cornett Date: Thu, 1 Jan 2015 18:05:23 -0500 Subject: [PATCH] add featured image column to posts, pages, post types --- ...displayfeaturedimagegenesis-taxonomies.php | 53 +++++++++++++++---- .../class-displayfeaturedimagegenesis.php | 1 + 2 files changed, 45 insertions(+), 9 deletions(-) diff --git a/includes/class-displayfeaturedimagegenesis-taxonomies.php b/includes/class-displayfeaturedimagegenesis-taxonomies.php index 97ff232..9269618 100644 --- a/includes/class-displayfeaturedimagegenesis-taxonomies.php +++ b/includes/class-displayfeaturedimagegenesis-taxonomies.php @@ -10,16 +10,31 @@ class Display_Featured_Image_Genesis_Taxonomies { function set_taxonomy_meta() { $args = array( 'public' => true ); - $output = 'objects'; + $output = 'names'; $taxonomies = get_taxonomies( $args, $output ); foreach ( $taxonomies as $taxonomy ) { - add_action( "{$taxonomy->name}_add_form_fields", array( $this, 'add_taxonomy_meta_fields' ), 5, 2 ); - add_action( "{$taxonomy->name}_edit_form_fields", array( $this, 'edit_taxonomy_meta_fields' ), 5, 2 ); - add_action( "edited_{$taxonomy->name}", array( $this, 'save_taxonomy_custom_meta' ), 10, 2 ); - add_action( "create_{$taxonomy->name}", array( $this, 'save_taxonomy_custom_meta' ), 10, 2 ); + 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, 'save_taxonomy_custom_meta' ), 10, 2 ); + add_action( "create_{$taxonomy}", array( $this, 'save_taxonomy_custom_meta' ), 10, 2 ); - add_filter( "manage_edit-{$taxonomy->name}_columns", array( $this, 'add_column' ) ); - add_action( "manage_{$taxonomy->name}_custom_column", array( $this, 'manage_column' ), 10, 3 ); + add_filter( "manage_edit-{$taxonomy}_columns", array( $this, 'add_column' ) ); + add_action( "manage_{$taxonomy}_custom_column", array( $this, 'manage_column' ), 10, 3 ); + } + } + + function add_columns_post_types() { + $args = array( + 'public' => true, + '_builtin' => false, + ); + $output = 'names'; + $post_types = get_post_types( $args, $output ); + $post_types['post'] = 'post'; + $post_types['page'] = 'page'; + foreach ( $post_types as $post_type ) { + add_filter( "manage_{$post_type}_posts_columns", array( $this, 'add_post_columns' ) ); + add_action( "manage_{$post_type}_posts_custom_column", array( $this, 'custom_post_columns' ), 10, 2 ); } } @@ -158,8 +173,28 @@ class Display_Featured_Image_Genesis_Taxonomies { $term_meta = get_option( "taxonomy_$term_id" ); if ( ! empty( $term_meta['dfig_image'] ) ) { $id = Display_Featured_Image_Genesis_Common::get_image_id( $term_meta['dfig_image'] ); - $preview = wp_get_attachment_image_src( $id, array( 75,75 ) ); - echo ''; + $preview = wp_get_attachment_image_src( $id, 'thumbnail' ); + echo ''; + } + } + } + + public function add_post_columns( $columns ) { + + $new_columns = $columns; + array_splice( $new_columns, 1 ); + + $new_columns['featured_image'] = __( 'Featured Image', 'display-featured-image-genesis' ); + + return array_merge( $new_columns, $columns ); + + } + + public function custom_post_columns( $column, $post_id ) { + if ( 'featured_image' === $column ) { + $image = get_the_post_thumbnail( $post_id, array( 60,60 ) ); + if ( $image ) { + echo $image; } } } diff --git a/includes/class-displayfeaturedimagegenesis.php b/includes/class-displayfeaturedimagegenesis.php index a2b96d5..18c0b3b 100644 --- a/includes/class-displayfeaturedimagegenesis.php +++ b/includes/class-displayfeaturedimagegenesis.php @@ -35,6 +35,7 @@ class Display_Featured_Image_Genesis { add_action( 'init', array( $this, 'add_plugin_supports' ) ); add_action( 'admin_init', array( $this, 'check_settings' ) ); add_action( 'admin_init', array( $this->taxonomies, 'set_taxonomy_meta' ) ); + add_action( 'admin_init', array( $this->taxonomies, 'add_columns_post_types' ) ); add_action( 'plugins_loaded', array( $this, 'load_textdomain' ) ); add_action( 'admin_menu', array( $this->settings, 'do_submenu_page' ) ); add_action( 'get_header', array( $this->output, 'manage_output' ) );