PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 3.1.2
Admin Columns v3.1.2
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 / Media.php
codepress-admin-columns / classes / Helper Last commit date
Array.php 8 years ago Date.php 8 years ago File.php 8 years ago Html.php 8 years ago Icon.php 8 years ago Image.php 8 years ago Media.php 8 years ago Network.php 8 years ago Post.php 8 years ago String.php 8 years ago Taxonomy.php 8 years ago User.php 8 years ago
Media.php
95 lines
1 <?php
2
3 if ( ! defined( 'ABSPATH' ) ) {
4 exit;
5 }
6
7 class AC_Helper_Media {
8
9 /**
10 * @param string $image_url
11 * @param bool $check_cropped_versions Checks for cropped version of the image. e.g. file-name-320x60.jpg
12 *
13 * @return bool
14 */
15 public function get_attachment_id_by_url( $image_url, $check_cropped_versions = false ) {
16 if ( ! $image_url ) {
17 return false;
18 }
19
20 $upload_dir = wp_get_upload_dir();
21
22 // Is image in upload folder?
23 if ( false === strpos( $image_url, $upload_dir['baseurl'] ) ) {
24 return false;
25 }
26
27 $file_with_relative_path = ltrim( str_replace( $upload_dir['baseurl'], '', $image_url ), '/' );
28
29 $image_id = false;
30
31 $images = get_posts( array(
32 'post_type' => 'attachment',
33 'fields' => 'ids',
34 'meta_query' => array(
35 array(
36 'key' => '_wp_attached_file',
37 'value' => $file_with_relative_path,
38 ),
39 ),
40 'posts_per_page' => 1,
41 ) );
42
43 if ( $images ) {
44 $image_id = $images[0];
45 }
46
47 // Maybe it's a cropped version of an image. e.g. file-name-320x60.jpg
48 if ( ! $image_id && $check_cropped_versions ) {
49
50 $relative_upload_dir = dirname( $file_with_relative_path );
51
52 $image_ids = get_posts( array(
53 'post_type' => 'attachment',
54 'fields' => 'ids',
55 'meta_query' => array(
56 array(
57 'key' => '_wp_attachment_metadata',
58 'value' => serialize( basename( $image_url ) ),
59 'compare' => 'LIKE',
60 ),
61 array(
62 'key' => '_wp_attached_file',
63 'value' => $relative_upload_dir,
64 'compare' => 'LIKE',
65 ),
66 ),
67 'posts_per_page' => 1,
68 ) );
69
70 if ( $image_ids ) {
71
72 if ( 1 === count( $image_ids ) ) {
73
74 // Direct match
75 $image_id = $image_ids[0];
76 } else {
77
78 // Make sure the found image is in the same folder as the original
79 foreach ( $image_ids as $_image_id ) {
80 if ( 0 === strpos( get_post_meta( $_image_id, '_wp_attached_file', true ), $relative_upload_dir ) ) {
81 $image_id = $_image_id;
82
83 }
84 }
85
86 }
87 }
88
89 }
90
91 return $image_id;
92 }
93
94 }
95