available-sizes.php
2.0 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
/**
* CPAC_Column_Media_Available_Sizes
*
* @since 2.0
*/
class CPAC_Column_Media_Available_Sizes extends CPAC_Column {
/**
* @see CPAC_Column::init()
* @since 2.2.1
*/
public function init() {
parent::init();
// Properties
$this->properties['type'] = 'column-available_sizes';
$this->properties['label'] = __( 'Available Sizes', 'codepress-admin-columns' );
}
/**
* @see CPAC_Column::get_value()
* @since 2.0
*/
function get_value( $id ) {
$paths = array();
$meta = get_post_meta( $id, '_wp_attachment_metadata', true );
if ( ! isset( $meta['sizes'] ) )
return false;
// available sizes
if ( $intersect = array_intersect( array_keys( $meta['sizes'] ), get_intermediate_image_sizes() ) ) {
$url = wp_get_attachment_url( $id );
$filename = basename( $url );
$paths[] = "<a title='{$filename}' href='{$url}'>" . __( 'full size', 'codepress-admin-columns' ) . "</a>";
foreach ( $intersect as $size ) {
$src = wp_get_attachment_image_src( $id, $size );
if ( ! empty( $src[0] ) ) {
$filename = basename( $src[0] );
$paths[] = "<a title='{$filename}' href='{$src[0]}' class='available'>{$size}</a>";
}
}
}
global $_wp_additional_image_sizes;
if ( ! empty( $_wp_additional_image_sizes ) ) {
if ( isset( $_wp_additional_image_sizes['post-thumbnail'] ) ) {
unset( $_wp_additional_image_sizes['post-thumbnail'] );
}
// image does not have these additional sizes rendered yet
if ( $missing = array_diff( array_keys( $_wp_additional_image_sizes), array_keys( $meta['sizes'] ) ) ) {
foreach ( $missing as $size ) {
$paths[] = "<span title='Missing size: Try regenerate thumbnails with the plugin: Force Regenerate Thumbnails' href='javascript:;' class='not-available'>{$size}</span>";
}
}
}
return "<div class='sizes'>" . implode( '<span class="cpac-divider"></span>', $paths ) . "</div>";
}
}