1
|
|
|
<?php |
2
|
|
|
/** |
3
|
|
|
* Plugin Name: Simple Featured Image Column |
4
|
|
|
* Plugin URI: https://github.com/dedevillela/Simple-Featured-Image-Column/ |
5
|
|
|
* Description: A simple plugin that displays the "Featured Image" column in admin post type listing. Supports Post, Pages and Custom Posts. |
6
|
|
|
* Version: 1.0.8 |
7
|
|
|
* Author: Andre Aguiar Villela |
8
|
|
|
* Author URI: https://dedevillela.com/ |
9
|
|
|
* License: GPLv2+ |
10
|
|
|
**/ |
11
|
|
|
|
12
|
|
|
if (!defined('ABSPATH') || preg_match('#'.basename(__FILE__).'#', $_SERVER['PHP_SELF'])) { |
13
|
|
|
die("Hey, dude! What are you doing here?"); |
14
|
|
|
} |
15
|
|
|
|
16
|
|
|
if (!class_exists('Simple_Featured_Image_Column')) { |
17
|
|
|
|
18
|
|
|
class Simple_Featured_Image_Column { |
19
|
|
|
|
20
|
|
|
public function __construct() { |
21
|
|
|
add_action('admin_init', array($this, 'init')); |
|
|
|
|
22
|
|
|
} |
23
|
|
|
|
24
|
|
|
private function init() { |
25
|
|
|
|
26
|
|
|
$post_types = apply_filters('Simple_Featured_Image_Column_post_types', get_post_types(array('public' => true))); |
|
|
|
|
27
|
|
|
if (empty($post_types)) { |
28
|
|
|
return; |
29
|
|
|
} |
30
|
|
|
|
31
|
|
|
add_action('admin_head', function() { |
|
|
|
|
32
|
|
|
echo '<style>th#featured-image { width: 100px; }</style>'."\r\n"; |
33
|
|
|
}); |
34
|
|
|
|
35
|
|
|
foreach ($post_types as $post_type) { |
36
|
|
|
if (!/** @scrutinizer ignore-call */ post_type_supports($post_type, 'thumbnail')) { |
37
|
|
|
continue; |
38
|
|
|
} |
39
|
|
|
add_filter("manage_{$post_type}_posts_columns", array($this, 'columns')); |
|
|
|
|
40
|
|
|
add_action("manage_{$post_type}_posts_custom_column", array($this, 'column_data'), 10, 2); |
41
|
|
|
} |
42
|
|
|
} |
43
|
|
|
|
44
|
|
|
private function columns($columns) { |
45
|
|
|
|
46
|
|
|
if (!is_array($columns)) { |
47
|
|
|
$columns = array(); |
48
|
|
|
} |
49
|
|
|
$new = array(); |
50
|
|
|
foreach ($columns as $key => $title){ |
51
|
|
|
if ($key == 'title') { |
52
|
|
|
$new['featured-image'] = /** @scrutinizer ignore-call */ __('Image', 'wordpress'); |
53
|
|
|
} |
54
|
|
|
$new[$key] = $title; |
55
|
|
|
} |
56
|
|
|
return $new; |
57
|
|
|
} |
58
|
|
|
|
59
|
|
|
private function column_data($column_name, $post_id) { |
60
|
|
|
|
61
|
|
|
if ('featured-image' != $column_name) { |
62
|
|
|
return; |
63
|
|
|
} |
64
|
|
|
$style = 'display: block; max-width: 100px; height: auto; border: 1px solid #e5e5e5;'; |
65
|
|
|
$style = apply_filters('Simple_Featured_Image_Column_image_style', $style); |
|
|
|
|
66
|
|
|
|
67
|
|
|
if (has_post_thumbnail($post_id)) { |
|
|
|
|
68
|
|
|
$size = 'thumbnail'; |
69
|
|
|
echo get_the_post_thumbnail($post_id, $size, 'style='.$style); |
|
|
|
|
70
|
|
|
} else { |
71
|
|
|
echo '<img style="'.$style.'" src="'.esc_url(plugins_url('images/default.png', __FILE__)).'" />'; |
|
|
|
|
72
|
|
|
} |
73
|
|
|
} |
74
|
|
|
} |
75
|
|
|
$featured_image_column = new Simple_Featured_Image_Column; |
76
|
|
|
}; |
77
|
|
|
|