PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.1.4
Admin Columns v7.1.4
7.1.4 7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / Helper / Image / SizeResolver.php
codepress-admin-columns / classes / Helper / Image Last commit date
Markup.php 2 days ago SizeResolver.php 2 days ago
SizeResolver.php
75 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Helper\Image;
6
7 use AC\Helper\Creatable;
8
9 class SizeResolver extends Creatable
10 {
11 /**
12 * @param string|array $size
13 */
14 public function get_dimensions($size): array
15 {
16 if (is_string($size)) {
17 $sizes = $this->get_sizes_by_name($size);
18
19 if ($sizes) {
20 return [
21 (int)$sizes['width'],
22 (int)$sizes['height'],
23 ];
24 }
25 }
26
27 $pair = $this->normalize_pair($size);
28
29 if ($pair !== null) {
30 return $pair;
31 }
32
33 return [60, 60];
34 }
35
36 /**
37 * Normalize a numeric width/height pair (e.g. [300, 200]) or return null when the input is not such a pair.
38 *
39 * @param string|array $size
40 */
41 public function normalize_pair($size): ?array
42 {
43 if (
44 is_array($size)
45 && isset($size[0], $size[1])
46 && is_numeric($size[0])
47 && is_numeric($size[1])
48 && $size[0] > 0
49 && $size[1] > 0
50 ) {
51 return [
52 (int)$size[0],
53 (int)$size[1],
54 ];
55 }
56
57 return null;
58 }
59
60 public function get_sizes_by_name(string $name): array
61 {
62 $available_sizes = wp_get_additional_image_sizes();
63
64 foreach (['thumbnail', 'medium', 'large'] as $key) {
65 $available_sizes[$key] = [
66 'width' => (int)get_option($key . '_size_w'),
67 'height' => (int)get_option($key . '_size_h'),
68 ];
69 }
70
71 return $available_sizes[$name] ?? [];
72 }
73
74 }
75