/var/www/hkosl.com/aga/wp-content/plugins/wordpress-seo/inc/class-wpseo-content-images.php


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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<?php
/**
 * WPSEO plugin file.
 *
 * @package WPSEO
 */

/**
 * WPSEO_Content_Images.
 */
class WPSEO_Content_Images {

    
/**
     * Retrieves images from the post content.
     *
     * @param int      $post_id The post ID.
     * @param \WP_Post $post    The post object.
     *
     * @return array An array of images found in this post.
     */
    
public function get_images$post_id$post null ) {
        return 
$this->get_images_from_content$this->get_post_content$post_id$post ) );
    }

    
/**
     * Grabs the images from the content.
     *
     * @param string $content The post content string.
     *
     * @return array An array of image URLs.
     */
    
protected function get_images_from_content$content ) {
        
$content_images $this->get_img_tags_from_content$content );
        
$images         array_map( array( $this'get_img_tag_source' ), $content_images );
        
$images         array_filter$images );
        
$images         array_unique$images );

        return 
$images;
    }

    
/**
     * Gets the image tags from a given content string.
     *
     * @param string $content The content to search for image tags.
     *
     * @return array An array of `<img>` tags.
     */
    
private function get_img_tags_from_content$content ) {
        if ( 
strpos$content'<img' ) === false ) {
            return array();
        }

        
preg_match_all'`<img [^>]+>`'$content$matches );
        if ( isset( 
$matches[0] ) ) {
            return 
$matches[0];
        }

        return array();
    }

    
/**
     * Retrieves the image URL from an image tag.
     *
     * @param string $image Image HTML element.
     *
     * @return string|bool The image URL on success, false on failure.
     */
    
private function get_img_tag_source$image ) {
        
preg_match'`src=(["\'])(.*?)\1`'$image$matches );
        if ( isset( 
$matches[2] ) ) {
            return 
$matches[2];
        }
        return 
false;
    }

    
/**
     * Retrieves the post content we want to work with.
     *
     * @param int                $post_id The post ID.
     * @param WP_Post|array|null $post    The post.
     *
     * @return string The content of the supplied post.
     */
    
private function get_post_content$post_id$post ) {
        if ( 
$post === null ) {
            
$post get_post$post_id );
        }

        if ( 
$post === null ) {
            return 
'';
        }

        
/**
         * Filter: 'wpseo_pre_analysis_post_content' - Allow filtering the content before analysis.
         *
         * @api string $post_content The Post content string.
         */
        
$content apply_filters'wpseo_pre_analysis_post_content'$post->post_content$post );

        if ( ! 
is_string$content ) ) {
            
$content '';
        }

        return 
$content;
    }

    
/* ********************* DEPRECATED METHODS ********************* */

    /**
     * Removes the cached images on post save.
     *
     * @deprecated 7.7
     * @codeCoverageIgnore
     *
     * @param int $post_id The post id to remove the images from.
     *
     * @return void
     */
    
public function clear_cached_images$post_id ) {
        
_deprecated_function__METHOD__'7.7.0' );
    }

    
/**
     * Registers the hooks.
     *
     * @deprecated 9.6
     * @codeCoverageIgnore
     *
     * @return void
     */
    
public function register_hooks() {
        
_deprecated_function__METHOD__'WPSEO 9.6' );
    }
}