MSM_Sitemap_Builder_Cron::generate_full_sitemap PHP Method

generate_full_sitemap() public static method

Generate full sitemap
public static generate_full_sitemap ( )
    public static function generate_full_sitemap()
    {
        global $wpdb;
        $is_partial_or_running = get_option('msm_years_to_process');
        if (empty($is_partial_or_running)) {
            $all_years_with_posts = Metro_Sitemap::check_year_has_posts();
            update_option('msm_years_to_process', $all_years_with_posts);
        } else {
            $all_years_with_posts = $is_partial_or_running;
        }
        if (0 == count($all_years_with_posts)) {
            return;
        }
        // Cannot generate sitemaps if there are no posts
        $time = time();
        $next_year = end($all_years_with_posts);
        wp_schedule_single_event($time, 'msm_cron_generate_sitemap_for_year', array(array('year' => (int) $next_year)));
    }

Usage Example

コード例 #1
0
 /**
  * Generate sitemaps; pretends to run cron six times
  */
 function build_sitemaps()
 {
     MSM_Sitemap_Builder_Cron::reset_sitemap_data();
     delete_option('msm_stop_processing');
     MSM_Sitemap_Builder_Cron::generate_full_sitemap();
     update_option('msm_sitemap_create_in_progress', true);
     $days_being_processed = (array) get_option('msm_days_to_process', array());
     $months_being_processed = (array) get_option('msm_months_to_process', array());
     $years_being_processed = (array) get_option('msm_years_to_process', array());
     while (count($days_being_processed) || count($months_being_processed) || count($years_being_processed)) {
         $this->fake_cron();
         $this->fake_cron();
         $this->fake_cron();
         $days_being_processed = (array) get_option('msm_days_to_process', array());
         $months_being_processed = (array) get_option('msm_months_to_process', array());
         $years_being_processed = (array) get_option('msm_years_to_process', array());
     }
 }