' . __( 'Settings', 'google-sitemap-generator' ) . '';
$links[] = '' . __( 'FAQ', 'google-sitemap-generator' ) . '';
$links[] = '' . __( 'Support', 'google-sitemap-generator' ) . '';
}
return $links;
}
/**
* SchedulePingOnStatus Change
*
* @param string $new_status string The new post status .
* @param string $old_status string The old post status .
* @param object $post WP_Post The post object .
*/
public static function schedule_ping_on_status_change( $new_status, $old_status, $post ) {
if ( 'publish' === $new_status ) {
set_transient( 'sm_ping_post_id', $post->ID, 120 );
wp_schedule_single_event( time() + 5, 'sm_ping' );
}
}
/**
* Invokes the HtmlShowOptionsPage method of the generator
*
* @uses GoogleSitemapGeneratorLoader::load_plugin()
* @uses GoogleSitemapGenerator::HtmlShowOptionsPage()
*/
public static function call_html_show_options_page() {
if ( self::load_plugin() ) {
GoogleSitemapGenerator::get_instance()->html_show_options_page();
}
}
/**
* Invokes the ShowPingResult method of the generator
*
* @uses GoogleSitemapGeneratorLoader::load_plugin()
* @uses GoogleSitemapGenerator::ShowPingResult()
*/
public static function call_show_ping_result() {
if ( self::load_plugin() ) {
GoogleSitemapGenerator::get_instance()->show_ping_result();
}
}
/**
* Invokes the SendPing method of the generator
*
* @uses GoogleSitemapGeneratorLoader::load_plugin()
* @uses GoogleSitemapGenerator::SendPing()
*/
public static function call_send_ping() {
if ( self::load_plugin() ) {
GoogleSitemapGenerator::get_instance()->send_ping();
}
}
/**
* Invokes the SendPingDaily method of the generator
*
* @uses GoogleSitemapGeneratorLoader::load_plugin()
* @uses GoogleSitemapGenerator::SendPingDaily()
*/
public static function call_send_ping_daily() {
if ( self::load_plugin() ) {
GoogleSitemapGenerator::get_instance()->send_ping_daily();
}
}
/**
* Invokes the ShowSitemap method of the generator
*
* @param string $options .
* @uses GoogleSitemapGeneratorLoader::load_plugin()
* @uses GoogleSitemapGenerator::ShowSitemap()
*/
public static function call_show_sitemap( $options ) {
$newFormat = self::change_url_to_required();
if($newFormat) $options = $newFormat;
if ( self::load_plugin() ) {
GoogleSitemapGenerator::get_instance()->show_sitemap( $options );
}
}
/* Get url and to transform required format */
public static function change_url_to_required(){
global $wp;
$current_url = parse_url(home_url(add_query_arg(array(), $wp->request)));
if( isset($current_url['path']) && strlen($current_url['path']) > 1){
$currentUrl = substr($current_url['path'], 1);
$arrayType = explode('.', $currentUrl);
if (isset($arrayType) && is_array($arrayType) && count($arrayType) > 1) {
if (isset($arrayType[1]) && is_string($arrayType[1])) {
if (in_array($arrayType[1], array('xml', 'html'))){
if(isset(get_option('sm_options')['sm_b_sitemap_name']) && $arrayType[0] === get_option('sm_options')['sm_b_sitemap_name']){
$postType[0] = $arrayType[0] . '.' . $arrayType[1];
}else if( strpos($arrayType[0], '-misc') !== false ) {
$postType[0] = 'sitemap';
$postType[1] = $arrayType[1];
}
else $postType = explode('-sitemap', $currentUrl);
if (strpos($postType[0], '/') !== false){
$newType = explode('/', $postType[0]);
$postType[0] = end($newType);
}
if (strpos($postType[0], 'authors') !== false && strpos($postType[0], '-') !== false) {
$array = explode('-', $postType[0]);
$postType[0] = end($array);
}
if(count($postType) > 1 ){
preg_match('/\d+/', $postType[1], $matches);
if(empty($matches)) $matches[0] = 1;
if($postType[0] === 'sitemap') return 'params=misc';
else if($postType[0] === 'post_tag' || $postType[0] === 'category' || taxonomy_exists($postType[0])) return 'params=tax-' . $postType[0] . '-' . $matches[0];
else if($postType[0] === 'productcat') return 'params=productcat-' . $matches[0];
else if($postType[0] === 'authors' || $postType[0] === 'archives') return 'params=' . $postType[0];
else if($postType[0] === 'productcat') return 'params=productcat-' . $matches[0];
else if($postType[0] === 'producttags') return 'params=producttags-' . $matches[0];
else return 'params=pt-' . $postType[0] . '-p' . $matches[0] . '-2023-11';
}
}
}
}
}
return false;
}
/**
* Invokes the DoRobots method of the generator
*
* @uses GoogleSitemapGeneratorLoader::load_plugin()
* @uses GoogleSitemapGenerator::DoRobots()
*/
public static function call_do_robots() {
if ( self::load_plugin() ) {
GoogleSitemapGenerator::get_instance()->do_robots();
}
}
/**
* Displays the help links in the upper Help Section of WordPress
*/
public static function call_html_show_help_list() {
$screen = get_current_screen();
$id = get_plugin_page_hookname( self::get_base_name(), 'options-general.php' );
}
/**
* Loads the actual generator class and tries to raise the memory and time limits if not already done by WP
*
* @uses GoogleSitemapGenerator::enable()
* @return boolean true if run successfully
*/
public static function load_plugin() {
$disable_functions = ini_get( 'disable_functions' );
if ( ! class_exists( 'GoogleSitemapGenerator' ) ) {
$mem = abs( intval( ini_get( 'memory_limit' ) ) );
if ( $mem && $mem < 128 ) {
wp_raise_memory_limit( '128M' );
}
$time = abs( intval( ini_get( 'max_execution_time' ) ) );
if ( 0 !== $time && 120 > $time ) {
if ( strpos( $disable_functions, 'set_time_limit' ) === false ) {
set_time_limit( 120 );
}
}
$path = trailingslashit( dirname( __FILE__ ) );
if ( ! file_exists( $path . 'sitemap-core.php' ) ) {
return false;
}
require_once $path . 'sitemap-core.php';
}
GoogleSitemapGenerator::enable();
return true;
}
/**
* Returns the plugin basename of the plugin (using __FILE__)
*
* @return string The plugin basename, 'sitemap' for example
*/
public static function get_base_name() {
return plugin_basename( sm_get_init_file() );
}
/**
* Returns the name of this loader script, using sm_GetInitFile
*
* @return string The sm_GetInitFile value
*/
public static function get_plugin_file() {
return sm_get_init_file();
}
/**
* Returns the plugin version
*
* Uses the WP API to get the meta data from the top of this file (comment)
*
* @return string The version like 3.1.1
*/
public static function get_version() {
if ( ! isset( $GLOBALS['sm_version'] ) ) {
if ( ! function_exists( 'get_plugin_data' ) ) {
if ( file_exists( ABSPATH . 'wp-admin/includes/plugin.php' ) ) {
require_once ABSPATH . 'wp-admin/includes/plugin.php';
} else {
return '0.ERROR';
}
}
$data = get_plugin_data( self::get_plugin_file(), false, false );
$GLOBALS['sm_version'] = $data['Version'];
}
return $GLOBALS['sm_version'];
}
/**
* Get SVN function .
*/
public static function get_svn_version() {
return self::$svn_version;
}
public static function get_current_page_url(){
$window_url = home_url() . $_SERVER[ 'REQUEST_URI' ];
$parts = wp_parse_url( $window_url );
$current_page = '';
$current_url = $_SERVER['REQUEST_URI'];
if ( isset( $parts['query'] ) ) {
parse_str( $parts['query'], $query );
if ( isset( $query['page'] ) ) {
$current_page = $query['page'];
}
}
return $current_page;
}
public static function get_tags_array(){
return array(
'br' => array(),
'p' => array(),
'h3' => array(),
'div' => array(
'style' => array(
'display' => 'flex',
'justify-content' => 'space-between',
),
'class' => array(),
'id' => array(),
),
'a' => array(
'href' => array(),
'name' => array(),
'class' => array(),
'name' => array(),
'id' => array(),
),
'h4' => array(
'style' => array(
'width' => array(),
'display' => array(),
),
'id' => array(),
'class' => array(),
),
'h3' => array(
'style' => array(
'width' => array(),
'display' => array(),
),
'id' => array(),
),
'img' => array(
'src' => array(),
'class' => array(),
'id' => array(),
'height' => array(),
'width' => array(),
),
'button' => array(
'onClick' => array(),
'type' => array(),
'onclick' => array(),
'class' => array(),
'id' => array(),
),
'strong' => array(),
'input' => array(
'type' => array(),
'class' => array(),
'id' => array(),
'name' => array(),
'value' => array(),
'style' => array(
'position' => array(),
'padding' => array(),
'background' => array(),
'right' => array(),
'color' => array(),
'border-color' => array(),
'cursor' => array(),
),
),
'form' => array(
'id' => array(),
'method' => array(),
'action' => array(),
'style' => array(
'margin-top' => array(),
'margin-left' => array(),
'display' => array(),
),
),
);
}
public static function create_notice_conflict_plugin(){
$window_url = home_url() . $_SERVER[ 'REQUEST_URI' ];
$parts = wp_parse_url( $window_url );
$current_page = '';
$current_url = $_SERVER['REQUEST_URI'];
if ( isset( $parts['query'] ) ) {
parse_str( $parts['query'], $query );
if ( isset( $query['page'] ) ) {
$current_page = $query['page'];
}
}
$default_value = 'default';
$yoast_options = get_option( 'wpseo', $default_value );
$yoast_sm_enabled = 0;
if ( $yoast_options !== $default_value && isset( $yoast_options['enable_xml_sitemap'] ) ) {
$yoast_sm_enabled = $yoast_options['enable_xml_sitemap'] ? $yoast_options['enable_xml_sitemap'] : 0;
}
$aio_seo_options = get_option( 'aioseo_options', $default_value );
$aio_seo_sm_enabled = 0;
if ( $aio_seo_options !== $default_value ) {
$aio_seo_options = json_decode( $aio_seo_options );
$aio_seo_sm_enabled = $aio_seo_options->sitemap->general->enable;
}
$jetpack_options = get_option( 'jetpack_active_modules', $default_value );
$jetpack_sm_enabled = 0;
if(is_array($jetpack_options)) {
if (in_array('sitemaps', $jetpack_options)) {
$jetpack_sm_enabled = 1;
}
}
if(isset(get_option('sm_options')['sm_wp_sitemap_status']) ) $wordpress_options = get_option('sm_options')['sm_wp_sitemap_status'];
else $wordpress_options = true;
$wordpress_sm_enabled = 0;
if($wordpress_options) {
$wordpress_sm_enabled = 1;
}
$sitemap_plugins = array();
$plugins = get_plugins();
foreach ( $plugins as $key => $value ) {
$plug = array();
if ( strpos( $key, 'google-sitemap-generator' ) !== false ) {
continue;
}
if ( ( strpos( $key, 'sitemap' ) !== false || strpos( $key, 'seo' ) !== false || $jetpack_sm_enabled || $wordpress_sm_enabled) && is_plugin_active( ( $key ) ) ) {
array_push( $plug, $key );
foreach ( $value as $k => $v ) {
if ( 'Name' === $k ) {
array_push( $plug, $v );
}
}
array_push( $sitemap_plugins, $plug );
}
}
$conflict_plugins = explode( ',', SM_CONFLICT_PLUGIN_LIST );
$plugin_title = array();
$plugin_name = array();
for ( $i = 0; $i < count( $sitemap_plugins ); $i++ ) {
if ( in_array( $sitemap_plugins[ $i ][1], $conflict_plugins ) ) {
array_push( $plugin_name, $sitemap_plugins[ $i ][1] );
array_push( $plugin_title, $sitemap_plugins[ $i ][0] );
}
}
if(('google-sitemap-generator/sitemap.php' === $current_page || $_SERVER['REQUEST_URI'] === '/wp-admin/index.php' || $_SERVER['REQUEST_URI'] === '/wp-admin/' ) && count( $sitemap_plugins ) > 0 && ( 0 !== $yoast_sm_enabled || 0 !== $aio_seo_sm_enabled || 0 !== $jetpack_sm_enabled || 0 !== $jetpack_sm_enabled) && count($plugin_name) > 0){
$plug_name = [];
$plug_title = [];
if($yoast_options = get_option('wpseo')){
$yoast_options = get_option('wpseo');
if (in_array('wordpress-seo/wp-seo.php', $plugin_title) && isset($yoast_options['enable_xml_sitemap'])) {
$sitemap_enabled = $yoast_options['enable_xml_sitemap'];
if ($sitemap_enabled) {
$plug_name[] = 'Yoast SEO';
$plug_title[] = 'wordpress-seo/wp-seo.php';
}
}
}
$aioseo_option_key = 'aioseo_options';
if($aioseo_options = get_option($aioseo_option_key)){
$aioseo_options = json_decode($aioseo_options, true);
if(in_array('all-in-one-seo-pack/all_in_one_seo_pack.php', $plugin_title) && $aioseo_options['sitemap']['general']['enable']){
$plug_name[] = 'All in One SEO';
$plug_title[] = 'all-in-one-seo-pack/all_in_one_seo_pack.php';
}
}
if($jetpack_sm_enabled){
$plug_name[] = 'Jetpack Sitemap';
$plug_title[] = 'jetpack/jetpack.php';
}
if($wordpress_sm_enabled){
$plug_name[] = 'Wordpress Sitemap';
$plug_title[] = 'wordpress-sitemap';
}
if(count($plug_name) > 0){
?>
One or more plugins conflict with proper indexation of your website. Use the deactivate button below to disable the extra sitemaps:
',
'google-sitemap-generator'
),
self::get_tags_array()
);
echo wp_kses_post('
');
foreach ($plug_name as $name) {
echo wp_kses_post(
'