Rename plugin to wp-seoprostack-plugin, update file structure
This commit is contained in:
README.md
admin
class-seoprostack-admin.php
css
images
themes
js
partials
pro-plugins-config.phpsettings.phpsettings
includes
wp-allstars-plugin.phpwp-seoprostack-plugin.php
77
admin/settings/ajax/class-seoprostack-ajax-tools.php
Normal file
77
admin/settings/ajax/class-seoprostack-ajax-tools.php
Normal file
@ -0,0 +1,77 @@
|
||||
<?php
|
||||
/**
|
||||
* The Tools AJAX handler.
|
||||
*
|
||||
* @package SEO_Pro_Stack
|
||||
* @subpackage SEO_Pro_Stack/Admin/Settings/AJAX
|
||||
*/
|
||||
|
||||
// If this file is called directly, abort.
|
||||
if (!defined('ABSPATH')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* The Tools AJAX handler.
|
||||
*/
|
||||
class SEOProStack_AJAX_Tools {
|
||||
|
||||
/**
|
||||
* Initialize the AJAX handlers.
|
||||
*/
|
||||
public function init() {
|
||||
add_action('wp_ajax_seoprostack_generate_robots', array($this, 'generate_robots'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate robots.txt file content.
|
||||
*/
|
||||
public function generate_robots() {
|
||||
// Verify nonce
|
||||
if (!isset($_POST['nonce']) || !wp_verify_nonce($_POST['nonce'], 'seoprostack_ajax_nonce')) {
|
||||
wp_send_json_error(array('message' => 'Security check failed'));
|
||||
}
|
||||
|
||||
// Check capabilities
|
||||
if (!current_user_can('manage_options')) {
|
||||
wp_send_json_error(array('message' => 'You do not have permission to generate robots.txt'));
|
||||
}
|
||||
|
||||
// Generate robots.txt content
|
||||
$site_url = get_home_url();
|
||||
$parsed_url = parse_url($site_url);
|
||||
$host = $parsed_url['host'];
|
||||
|
||||
$content = "# SEO Pro Stack generated robots.txt\n";
|
||||
$content .= "# Generated on: " . date('Y-m-d H:i:s') . "\n\n";
|
||||
$content .= "User-agent: *\n";
|
||||
|
||||
// Disallow WordPress admin
|
||||
$content .= "Disallow: /wp-admin/\n";
|
||||
|
||||
// Allow assets and ajax
|
||||
$content .= "Allow: /wp-admin/admin-ajax.php\n";
|
||||
$content .= "Allow: /wp-includes/*.js\n";
|
||||
$content .= "Allow: /wp-includes/*.css\n";
|
||||
$content .= "Allow: /wp-content/uploads/\n";
|
||||
|
||||
// Disallow common WordPress files and directories
|
||||
$content .= "Disallow: /wp-includes/\n";
|
||||
$content .= "Disallow: /readme.html\n";
|
||||
$content .= "Disallow: /license.txt\n";
|
||||
$content .= "Disallow: /xmlrpc.php\n";
|
||||
$content .= "Disallow: /wp-json/\n";
|
||||
|
||||
// Add sitemap if Yoast SEO or other SEO plugin is active
|
||||
if (function_exists('wpseo_init') || defined('AIOSEO_VERSION') || defined('RANK_MATH_VERSION')) {
|
||||
$content .= "\n# XML Sitemap\n";
|
||||
$content .= "Sitemap: " . trailingslashit($site_url) . "sitemap_index.xml\n";
|
||||
}
|
||||
|
||||
// Send response
|
||||
wp_send_json_success(array(
|
||||
'message' => 'Robots.txt content generated successfully.',
|
||||
'content' => $content
|
||||
));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user