Passed
Branch master (b69955)
by ANDRE
03:40 queued 01:48
created

simple-featured-image-column.php (4 issues)

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.7
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
		function __construct() {
0 ignored issues
show
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
21
			add_action('admin_init', array($this, 'init'));
22
		}
23
24
		function init() {
0 ignored issues
show
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
		function columns($columns) {
0 ignored issues
show
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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
		function column_data($column_name, $post_id) {
0 ignored issues
show
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
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