/var/www/hkosl.com/aga/wp-content/plugins/wordpress-seo/inc/sitemaps/class-sitemaps-admin.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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
<?php
/**
 * WPSEO plugin file.
 *
 * @package WPSEO\Admin\XML Sitemaps
 */

/**
 * Class that handles the Admin side of XML sitemaps.
 */
class WPSEO_Sitemaps_Admin {

    
/**
     * Post_types that are being imported.
     *
     * @var array
     */
    
private $importing_post_types = array();

    
/**
     * Class constructor.
     */
    
public function __construct() {
        
add_action'transition_post_status', array( $this'status_transition' ), 10);
        
add_action'admin_footer', array( $this'status_transition_bulk_finished' ) );

        
WPSEO_Sitemaps_Cache::register_clear_on_option_update'wpseo_titles''' );
        
WPSEO_Sitemaps_Cache::register_clear_on_option_update'wpseo''' );
    }

    
/**
     * Hooked into transition_post_status. Will initiate search engine pings
     * if the post is being published, is a post type that a sitemap is built for
     * and is a post that is included in sitemaps.
     *
     * @param string   $new_status New post status.
     * @param string   $old_status Old post status.
     * @param \WP_Post $post       Post object.
     */
    
public function status_transition$new_status$old_status$post ) {
        if ( 
$new_status !== 'publish' ) {
            return;
        }

        if ( 
defined'WP_IMPORTING' ) ) {
            
$this->status_transition_bulk$new_status$old_status$post );

            return;
        }

        
$post_type get_post_type$post );

        
wp_cache_delete'lastpostmodified:gmt:' $post_type'timeinfo' ); // #17455.

        // Not something we're interested in.
        
if ( 'nav_menu_item' === $post_type ) {
            return;
        }

        
// If the post type is excluded in options, we can stop.
        
if ( WPSEO_Options::get'noindex-' $post_typefalse ) ) {
            return;
        }

        
/**
         * Filter: 'wpseo_allow_xml_sitemap_ping' - Check if pinging is not allowed (allowed by default).
         *
         * @api boolean $allow_ping The boolean that is set to true by default.
         */
        
if ( apply_filters'wpseo_allow_xml_sitemap_ping'true ) === false ) {
            return;
        }

        if ( 
defined'YOAST_SEO_PING_IMMEDIATELY' ) && YOAST_SEO_PING_IMMEDIATELY ) {
            
WPSEO_Sitemaps::ping_search_engines();
        }
        elseif ( ! 
wp_next_scheduled'wpseo_ping_search_engines' ) ) {
            
wp_schedule_single_event( ( time() + 300 ), 'wpseo_ping_search_engines' );
        }
    }

    
/**
     * While bulk importing, just save unique post_types.
     *
     * When importing is done, if we have a post_type that is saved in the sitemap
     * try to ping the search engines.
     *
     * @param string   $new_status New post status.
     * @param string   $old_status Old post status.
     * @param \WP_Post $post       Post object.
     */
    
private function status_transition_bulk$new_status$old_status$post ) {
        
$this->importing_post_types[] = get_post_type$post );
        
$this->importing_post_types   array_unique$this->importing_post_types );
    }

    
/**
     * After import finished, walk through imported post_types and update info.
     */
    
public function status_transition_bulk_finished() {
        if ( ! 
defined'WP_IMPORTING' ) ) {
            return;
        }

        if ( empty( 
$this->importing_post_types ) ) {
            return;
        }

        
$ping_search_engines false;

        foreach ( 
$this->importing_post_types as $post_type ) {
            
wp_cache_delete'lastpostmodified:gmt:' $post_type'timeinfo' ); // #17455.

            // Just have the cache deleted for nav_menu_item.
            
if ( 'nav_menu_item' === $post_type ) {
                continue;
            }

            if ( 
WPSEO_Options::get'noindex-' $post_typefalse ) === false ) {
                
$ping_search_engines true;
            }
        }

        
// Nothing to do.
        
if ( false === $ping_search_engines ) {
            return;
        }

        if ( 
WP_CACHE ) {
            
do_action'wpseo_hit_sitemap_index' );
        }

        
WPSEO_Sitemaps::ping_search_engines();
    }

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

    /**
     * Find sitemaps residing on disk as they will block our rewrite.
     *
     * @deprecated 7.0
     * @codeCoverageIgnore
     */
    
public function delete_sitemaps() {
        
_deprecated_function'WPSEO_Sitemaps_Admin::delete_sitemaps''7.0' );
    }

    
/**
     * Find sitemaps residing on disk as they will block our rewrite.
     *
     * @deprecated 7.0
     * @codeCoverageIgnore
     */
    
public function detect_blocking_filesystem_sitemaps() {
        
_deprecated_function'WPSEO_Sitemaps_Admin::delete_sitemaps''7.0' );
    }
/* End of class */