<?php
/*
Plugin Name: My Sitemap Plugin
Description: Плагин для автоматической генерации sitemap.xml.
Version: 1.0
Author: Ваше Имя
*/
// Определяем константы
define('MY_SITEMAP_PLUGIN_DIR', plugin_dir_path(__FILE__));
define('MY_SITEMAP_PLUGIN_URL', plugin_dir_url(__FILE__));
// Подключаем файл генератора sitemap
require_once MY_SITEMAP_PLUGIN_DIR . 'includes/sitemap-generator.php';
// Регистрируем активацию плагина
register_activation_hook(__FILE__, 'my_sitemap_plugin_activate');
function my_sitemap_plugin_activate() {
my_generate_sitemap();
}
// Регистрируем деактивацию плагина
register_deactivation_hook(__FILE__, 'my_sitemap_plugin_deactivate');
function my_sitemap_plugin_deactivate() {
my_delete_sitemap();
}
// Добавляем действия для генерации sitemap при изменении контента
add_action('save_post', 'my_generate_sitemap');
add_action('deleted_post', 'my_generate_sitemap');
add_action('trashed_post', 'my_generate_sitemap');
// Обрабатываем запросы к sitemap.xml
add_action('init', 'my_sitemap_rewrite_rule');
function my_sitemap_rewrite_rule() {
add_rewrite_rule('^sitemap\.xml$', 'index.php?sitemap=1', 'top');
}
add_filter('query_vars', 'my_sitemap_query_var');
function my_sitemap_query_var($vars) {
$vars[] = 'sitemap';
return $vars;
}
add_action('template_redirect', 'my_sitemap_template');
function my_sitemap_template() {
if (get_query_var('sitemap')) {
my_generate_sitemap();
exit;
}
}