File "class-wp-sitemaps-provider.php"

Full path: /home/kosmetik/public_html/wp-includes/sitemaps/class-wp-sitemaps-provider.php
File size: 1.92 B
MIME-type: text/x-php
Charset: utf-8

Download   Open   Edit   Advanced Editor   Back

<?php

abstract class WP_Sitemaps_Provider
{
    protected $name = '';
    protected $object_type = '';
    public abstract function get_url_list($page_num, $object_subtype = '');
    public abstract function get_max_num_pages($object_subtype = '');
    public function get_sitemap_type_data()
    {
        $sitemap_data = array();
        $object_subtypes = $this->get_object_subtypes();
        if (empty($object_subtypes)) {
            $sitemap_data[] = array('name' => '', 'pages' => $this->get_max_num_pages());
            return $sitemap_data;
        }
        foreach ($object_subtypes as $object_subtype_name => $data) {
            $object_subtype_name = (string) $object_subtype_name;
            $sitemap_data[] = array('name' => $object_subtype_name, 'pages' => $this->get_max_num_pages($object_subtype_name));
        }
        return $sitemap_data;
    }
    public function get_sitemap_entries()
    {
        $sitemaps = array();
        $sitemap_types = $this->get_sitemap_type_data();
        foreach ($sitemap_types as $type) {
            for ($page = 1; $page <= $type['pages']; $page++) {
                $sitemap_entry = array('loc' => $this->get_sitemap_url($type['name'], $page));
                $sitemap_entry = apply_filters('wp_sitemaps_index_entry', $sitemap_entry, $this->object_type, $type['name'], $page);
                $sitemaps[] = $sitemap_entry;
            }
        }
        return $sitemaps;
    }
    public function get_sitemap_url($name, $page)
    {
        global $wp_rewrite;
        $params = array_filter(array('sitemap' => $this->name, 'sitemap-subtype' => $name, 'paged' => $page));
        $basename = sprintf('/wp-sitemap-%1$s.xml', implode('-', $params));
        if (!$wp_rewrite->using_permalinks()) {
            $basename = '/?' . http_build_query($params, null, '&');
        }
        return home_url($basename);
    }
    public function get_object_subtypes()
    {
        return array();
    }
}