pro['enable_rss_sitemap']) && !empty($siteseo->pro['toogle_state_rss_sitemap'])){
self::sitemap_init();
}
}
static function sitemap_init(){
add_filter('query_vars', function($vars){
$vars[] = 'sitemap-stylesheet';
return $vars;
});
}
static function add_rewrite_rules(){
add_rewrite_rule('^sitemap\.rss$', 'index.php?sitemap-stylesheet=rss', 'top');
add_rewrite_rule('^sitemap-rss\.xsl$', 'index.php?sitemap-stylesheet=rss&sitemap-xsl=1', 'top');
flush_rewrite_rules();
}
static function handle_sitemap_requests(){
global $siteseo;
if(get_query_var('sitemap-stylesheet') === 'rss'){
if(isset($_GET['sitemap-stylesheet']) && $_GET['sitemap-stylesheet'] === 'rss'){
self::sitemap_rss_xsl();
exit;
}
self::generate_rss_sitemap();
exit;
}
}
static function generate_rss_sitemap(){
global $siteseo;
header('Content-Type: text/xml; charset=UTF-8');
$xsl_url = home_url('/?sitemap-stylesheet=rss');
echo'
';
$numberposts = !empty($siteseo->pro['rss_sitemap_limt']) ? $siteseo->pro['rss_sitemap_limt'] : 50;
$post_types = !empty($siteseo->pro['rss_sitemap_posts']) ? $siteseo->pro['rss_sitemap_posts'] : [];
$posts = get_posts([
'post_type' => $post_types,
'post_status' => 'publish',
'numberposts' => $numberposts,
'order' => 'DESC',
'orderby' => 'date',
'has_password' => false,
'no_found_rows' => true,
'lang' => 'all',
'meta_query' => [
[
'key' => '_siteseo_robots_index',
'compare' => 'NOT EXISTS'
]
]
]);
echo'
'.esc_html(get_bloginfo('name')).' RSS Sitemap
'.esc_url(home_url()).'
'.esc_html(get_bloginfo('description')).'
'.esc_html(get_bloginfo('language')).'
';
foreach($posts as $post){
echo'-
'.esc_html(get_the_title($post)).'
'.esc_url(get_permalink($post)).'
'.esc_html(get_the_modified_date('c', $post->ID)).'
'.esc_url(get_permalink($post)).'
';
}
echo'
';
exit;
}
static function sitemap_rss_xsl(){
$title = __('RSS Sitemap', 'siteseo-pro');
$generated_by = __('Generated by SiteSEO', 'siteseo-pro');
$sitemap_count_txt = __('This RSS Sitemap contains', 'siteseo-pro');
$last_modified_txt = __('Last Modified', 'siteseo-pro');
header('Content-Type: application/xml; charset=UTF-8');
echo'
'.esc_xml($title).'
| URL |
'.esc_xml($last_modified_txt).' |
|
|
';
}
}