XML Sitemap & Google News feeds - Version 5.2.7

Version Description

  • NEW: Ad Inserter compatibility check
  • NEW: xmlsf_urlset and xmlsf_news_urlset action hooks, thanks to Stanislav Khromov (@khromov)
  • Exclude hierarchical post types from news sitemap
Download this release

Release Info

Developer deployer
Plugin Icon 128x128 XML Sitemap & Google News feeds
Version 5.2.7
Comparing to
See all releases

Code changes from version 5.2.6 to 5.2.7

assets/styles/sitemap-index.xsl CHANGED
@@ -14,8 +14,7 @@
14
  <body>
15
  <h1>XML Sitemap Feed - Index</h1>
16
  <div id="header">
17
- <p>This is the XML Sitemap Index to aid search engines like <a href="https://www.google.com">Google</a>, <a href="https://www.bing.com/">Bing</a>, <a href="https://www.yahoo.com">Yahoo!</a> and <a href="https://www.ask.com">Ask</a> indexing your site better.
18
- If you have a <a href="https://www.google.com/webmasters/tools/">Google Webmaster Tools</a> and/or <a href="https://www.bing.com/toolbox/webmaster">Bing Webmaster Tools</a> account, please submit <strong><em>this index file</em></strong> as your sitemap. Read more about XML sitemaps on <a href="https://www.sitemaps.org/">Sitemaps.org</a>.</p>
19
  </div>
20
  <div id="content">
21
  <table cellpadding="5">
14
  <body>
15
  <h1>XML Sitemap Feed - Index</h1>
16
  <div id="header">
17
+ <p>This is the XML Sitemap Index to aid search engines like <a href="https://www.google.com">Google</a>, <a href="https://www.bing.com/">Bing</a>, <a href="https://www.yahoo.com">Yahoo!</a> and <a href="https://www.ask.com">Ask</a> indexing your site better. Read more about XML sitemaps on <a href="https://www.sitemaps.org/">Sitemaps.org</a></p>
 
18
  </div>
19
  <div id="content">
20
  <table cellpadding="5">
assets/styles/sitemap-news.xsl CHANGED
@@ -16,8 +16,6 @@
16
  <h1>Google News Sitemap Feed</h1>
17
  <div id="header">
18
  <p>This is a <a href="https://support.google.com/news/publisher/answer/75717" target="_blank">Google News Sitemap</a> to aid <a href="https://news.google.com" target="_blank">Google News</a> finding news on your website. Please note that <strong><em>only posts from the last 48 hours</em></strong> will be processed by Google News.</p>
19
- <p>Follow the guidelines on <a href="https://support.google.com/news/publisher/answer/40787" target="_blank">Getting into Google News</a> and when you're ready, apply for inclusion within the <a href="https://partnerdash.google.com/partnerdash/d/news#p:id=pfehome">Google News Publisher Center</a>.
20
- For general questions about Google News, please see the <a href="https://groups.google.com/a/googleproductforums.com/forum/#!categories/news/google-news-publishers" target="_blank">Publisher Help Forum</a>.</p>
21
  </div>
22
  <div id="content">
23
  <table cellpadding="5">
16
  <h1>Google News Sitemap Feed</h1>
17
  <div id="header">
18
  <p>This is a <a href="https://support.google.com/news/publisher/answer/75717" target="_blank">Google News Sitemap</a> to aid <a href="https://news.google.com" target="_blank">Google News</a> finding news on your website. Please note that <strong><em>only posts from the last 48 hours</em></strong> will be processed by Google News.</p>
 
 
19
  </div>
20
  <div id="content">
21
  <table cellpadding="5">
controllers/class.xmlsf-admin-notices.php CHANGED
@@ -16,6 +16,11 @@ class XMLSF_Admin_Notices extends XMLSF_Admin
16
  include XMLSF_DIR . '/views/admin/notice-static-files.php';
17
  }
18
 
 
 
 
 
 
19
  public static function notice_catchbox_feed_redirect()
20
  {
21
  include XMLSF_DIR . '/views/admin/notice-catchbox-feed-redirect.php';
16
  include XMLSF_DIR . '/views/admin/notice-static-files.php';
17
  }
18
 
19
+ public static function notice_ad_inserter_feed()
20
+ {
21
+ include XMLSF_DIR . '/views/admin/notice-ad-insterter-feed.php';
22
+ }
23
+
24
  public static function notice_catchbox_feed_redirect()
25
  {
26
  include XMLSF_DIR . '/views/admin/notice-catchbox-feed-redirect.php';
controllers/class.xmlsf-admin-sitemap-news.php CHANGED
@@ -164,14 +164,17 @@ class XMLSF_Admin_Sitemap_News extends XMLSF_Admin
164
  // ADVANCED SECTION
165
  add_settings_section( 'news_sitemap_advanced_section', /* '<a name="xmlnf"></a>'.__('Google News Sitemap','xml-sitemap-feed') */ '', '', 'xmlsf_news_advanced' );
166
 
 
 
 
167
  // Keywords
168
- add_settings_field( 'xmlsf_news_keywords', __('Keywords', 'xml-sitemap-feed' ), array( $this,'keywords_field' ), 'xmlsf_news_advanced', 'news_sitemap_advanced_section' );
169
 
170
  // Stock tickers
171
- add_settings_field( 'xmlsf_news_stock_tickers', __('Stock tickers', 'xml-sitemap-feed' ), array( $this,'stock_tickers_field' ), 'xmlsf_news_advanced', 'news_sitemap_advanced_section' );
172
 
173
  // Ping log
174
- add_settings_field( 'xmlsf_news_ping_log', __('Ping log', 'xml-sitemap-feed' ), array( $this,'ping_log_field' ), 'xmlsf_news_advanced', 'news_sitemap_advanced_section' );
175
  } else {
176
  // GENERAL SECTION
177
  add_settings_section( 'news_sitemap_general_section', /* '<a name="xmlnf"></a>'.__('Google News Sitemap','xml-sitemap-feed') */ '', '', 'xmlsf_news_general' );
@@ -295,7 +298,7 @@ class XMLSF_Admin_Sitemap_News extends XMLSF_Admin
295
  public function post_type_field()
296
  {
297
  global $wp_taxonomies;
298
- $post_types = apply_filters( 'xmlsf_news_post_types', get_post_types( array( 'public' => true ) /*,'objects'*/) );
299
 
300
  if ( is_array($post_types) && !empty($post_types) ) :
301
 
@@ -333,6 +336,12 @@ class XMLSF_Admin_Sitemap_News extends XMLSF_Admin
333
  include XMLSF_DIR . '/views/admin/field-news-keywords.php';
334
  }
335
 
 
 
 
 
 
 
336
  public function stock_tickers_field()
337
  {
338
  // The actual fields for data entry
164
  // ADVANCED SECTION
165
  add_settings_section( 'news_sitemap_advanced_section', /* '<a name="xmlnf"></a>'.__('Google News Sitemap','xml-sitemap-feed') */ '', '', 'xmlsf_news_advanced' );
166
 
167
+ // Hierarchical post types
168
+ add_settings_field( 'xmlsf_news_hierarchical', __( 'Hierarchical post types', 'xml-sitemap-feed' ), array( $this,'hierarchical_field' ), 'xmlsf_news_advanced', 'news_sitemap_advanced_section' );
169
+
170
  // Keywords
171
+ add_settings_field( 'xmlsf_news_keywords', __( 'Keywords', 'xml-sitemap-feed' ), array( $this,'keywords_field' ), 'xmlsf_news_advanced', 'news_sitemap_advanced_section' );
172
 
173
  // Stock tickers
174
+ add_settings_field( 'xmlsf_news_stock_tickers', __( 'Stock tickers', 'xml-sitemap-feed' ), array( $this,'stock_tickers_field' ), 'xmlsf_news_advanced', 'news_sitemap_advanced_section' );
175
 
176
  // Ping log
177
+ add_settings_field( 'xmlsf_news_ping_log', __( 'Ping log', 'xml-sitemap-feed' ), array( $this,'ping_log_field' ), 'xmlsf_news_advanced', 'news_sitemap_advanced_section' );
178
  } else {
179
  // GENERAL SECTION
180
  add_settings_section( 'news_sitemap_general_section', /* '<a name="xmlnf"></a>'.__('Google News Sitemap','xml-sitemap-feed') */ '', '', 'xmlsf_news_general' );
298
  public function post_type_field()
299
  {
300
  global $wp_taxonomies;
301
+ $post_types = apply_filters( 'xmlsf_news_post_types', get_post_types( array( 'public' => true, 'hierarchical' => false ) /*,'objects'*/) );
302
 
303
  if ( is_array($post_types) && !empty($post_types) ) :
304
 
336
  include XMLSF_DIR . '/views/admin/field-news-keywords.php';
337
  }
338
 
339
+ public function hierarchical_field()
340
+ {
341
+ // The actual fields for data entry
342
+ include XMLSF_DIR . '/views/admin/field-news-hierarchical.php';
343
+ }
344
+
345
  public function stock_tickers_field()
346
  {
347
  // The actual fields for data entry
controllers/class.xmlsf-admin-sitemap.php CHANGED
@@ -19,7 +19,7 @@ class XMLSF_Admin_Sitemap extends XMLSF_Admin
19
  {
20
  add_action( 'admin_menu', array( $this, 'add_settings_page' ) );
21
  add_action( 'admin_init', array( $this, 'tools_actions' ) );
22
- add_action( 'admin_init', array( $this, 'check_plugin_conflicts' ), 11 );
23
  add_action( 'admin_init', array( $this, 'register_settings' ) );
24
  add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
25
  add_action( 'save_post', array( $this, 'save_metadata' ) );
@@ -66,7 +66,7 @@ class XMLSF_Admin_Sitemap extends XMLSF_Admin
66
  /**
67
  * Check for conflicting plugins and their settings
68
  */
69
- public function check_plugin_conflicts()
70
  {
71
  if ( wp_doing_ajax() || ! current_user_can( 'manage_options' ) ) return;
72
 
@@ -77,7 +77,7 @@ class XMLSF_Admin_Sitemap extends XMLSF_Admin
77
  // WP SEO conflict notices
78
  if ( is_plugin_active('wordpress-seo/wp-seo.php') ) {
79
  // check date archive redirection
80
- if ( !in_array( 'wpseo_date_redirect', parent::$dismissed ) ) {
81
  $wpseo_titles = get_option( 'wpseo_titles' );
82
  if ( !empty( $wpseo_titles['disable-date'] ) ) {
83
  // check if Split by option is set anywhere
@@ -88,7 +88,7 @@ class XMLSF_Admin_Sitemap extends XMLSF_Admin
88
  }
89
  }
90
  }
91
- }
92
 
93
  // check wpseo sitemap option
94
  if ( !in_array( 'wpseo_sitemap', parent::$dismissed ) ) {
@@ -104,7 +104,7 @@ class XMLSF_Admin_Sitemap extends XMLSF_Admin
104
 
105
  // check date archive redirection
106
  $seopress_toggle = get_option( 'seopress_toggle' );
107
- if ( !in_array( 'seopress_date_redirect', parent::$dismissed ) ) {
108
  $seopress_titles = get_option( 'seopress_titles_option_name' );
109
  if ( ! empty( $seopress_toggle['toggle-titles'] ) && ! empty( $seopress_titles['seopress_titles_archives_date_disable'] ) ) {
110
  // check if Split by option is set anywhere
@@ -115,7 +115,7 @@ class XMLSF_Admin_Sitemap extends XMLSF_Admin
115
  }
116
  }
117
  }
118
- }
119
 
120
  // check seopress sitemap option
121
  if ( !in_array( 'seopress_sitemap', parent::$dismissed ) ) {
@@ -130,7 +130,7 @@ class XMLSF_Admin_Sitemap extends XMLSF_Admin
130
  if ( is_plugin_active('seo-by-rank-math/rank-math.php') ) {
131
 
132
  // check date archive redirection
133
- if ( !in_array( 'rankmath_date_redirect', parent::$dismissed ) ) {
134
  $rankmath_titles = get_option( 'rank-math-options-titles' );
135
  if ( ! empty( $rankmath_titles['disable_date_archives'] ) && $rankmath_titles['disable_date_archives'] == 'on' ) {
136
  // check if Split by option is set anywhere
@@ -141,7 +141,7 @@ class XMLSF_Admin_Sitemap extends XMLSF_Admin
141
  }
142
  }
143
  }
144
- }
145
 
146
  // check rank math sitemap option
147
  if ( !in_array( 'rankmath_sitemap', parent::$dismissed ) ) {
19
  {
20
  add_action( 'admin_menu', array( $this, 'add_settings_page' ) );
21
  add_action( 'admin_init', array( $this, 'tools_actions' ) );
22
+ add_action( 'admin_init', array( $this, 'check_conflicts' ), 11 );
23
  add_action( 'admin_init', array( $this, 'register_settings' ) );
24
  add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
25
  add_action( 'save_post', array( $this, 'save_metadata' ) );
66
  /**
67
  * Check for conflicting plugins and their settings
68
  */
69
+ public function check_conflicts()
70
  {
71
  if ( wp_doing_ajax() || ! current_user_can( 'manage_options' ) ) return;
72
 
77
  // WP SEO conflict notices
78
  if ( is_plugin_active('wordpress-seo/wp-seo.php') ) {
79
  // check date archive redirection
80
+ //if ( !in_array( 'wpseo_date_redirect', parent::$dismissed ) ) {
81
  $wpseo_titles = get_option( 'wpseo_titles' );
82
  if ( !empty( $wpseo_titles['disable-date'] ) ) {
83
  // check if Split by option is set anywhere
88
  }
89
  }
90
  }
91
+ //}
92
 
93
  // check wpseo sitemap option
94
  if ( !in_array( 'wpseo_sitemap', parent::$dismissed ) ) {
104
 
105
  // check date archive redirection
106
  $seopress_toggle = get_option( 'seopress_toggle' );
107
+ //if ( !in_array( 'seopress_date_redirect', parent::$dismissed ) ) {
108
  $seopress_titles = get_option( 'seopress_titles_option_name' );
109
  if ( ! empty( $seopress_toggle['toggle-titles'] ) && ! empty( $seopress_titles['seopress_titles_archives_date_disable'] ) ) {
110
  // check if Split by option is set anywhere
115
  }
116
  }
117
  }
118
+ //}
119
 
120
  // check seopress sitemap option
121
  if ( !in_array( 'seopress_sitemap', parent::$dismissed ) ) {
130
  if ( is_plugin_active('seo-by-rank-math/rank-math.php') ) {
131
 
132
  // check date archive redirection
133
+ //if ( !in_array( 'rankmath_date_redirect', parent::$dismissed ) ) {
134
  $rankmath_titles = get_option( 'rank-math-options-titles' );
135
  if ( ! empty( $rankmath_titles['disable_date_archives'] ) && $rankmath_titles['disable_date_archives'] == 'on' ) {
136
  // check if Split by option is set anywhere
141
  }
142
  }
143
  }
144
+ //}
145
 
146
  // check rank math sitemap option
147
  if ( !in_array( 'rankmath_sitemap', parent::$dismissed ) ) {
controllers/class.xmlsf-admin.php CHANGED
@@ -55,7 +55,7 @@ class XMLSF_Admin
55
  // ACTIONS & CHECKS
56
  add_action( 'admin_init', array( $this, 'tools_actions' ) );
57
  add_action( 'admin_init', array( $this, 'static_files' ) );
58
- add_action( 'admin_init', array( $this, 'check_theme_conflicts' ) );
59
  }
60
 
61
  /**
@@ -303,12 +303,26 @@ class XMLSF_Admin
303
  * Check for conflicting themes and their settings
304
  */
305
 
306
- public function check_theme_conflicts()
307
  {
308
  // Catch Box Pro feed redirect
309
- if ( !in_array( 'catchbox_feed_redirect', self::$dismissed ) && function_exists( 'catchbox_is_feed_url_present' ) && catchbox_is_feed_url_present(null) ) {
310
  add_action( 'admin_notices', array( 'XMLSF_Admin_Notices', 'notice_catchbox_feed_redirect' ) );
311
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
312
  }
313
 
314
  public function tools_actions()
55
  // ACTIONS & CHECKS
56
  add_action( 'admin_init', array( $this, 'tools_actions' ) );
57
  add_action( 'admin_init', array( $this, 'static_files' ) );
58
+ add_action( 'admin_init', array( $this, 'check_conflicts' ), 11 );
59
  }
60
 
61
  /**
303
  * Check for conflicting themes and their settings
304
  */
305
 
306
+ public function check_conflicts()
307
  {
308
  // Catch Box Pro feed redirect
309
+ if ( /*!in_array( 'catchbox_feed_redirect', self::$dismissed ) &&*/ function_exists( 'catchbox_is_feed_url_present' ) && catchbox_is_feed_url_present(null) ) {
310
  add_action( 'admin_notices', array( 'XMLSF_Admin_Notices', 'notice_catchbox_feed_redirect' ) );
311
  }
312
+
313
+ // Ad Inserter XML setting incompatibility warning
314
+ if ( /*!in_array( 'ad_inserter_feed', parent::$dismissed ) &&*/ is_plugin_active('ad-inserter/ad-inserter.php') ) {
315
+ $adsettings = get_option( 'ad_inserter' );
316
+ if ( is_array($adsettings) && !empty($adsettings) ) {
317
+ foreach ( $adsettings as $ad => $settings ) {
318
+ // check rss feed setting
319
+ if ( !empty( $settings['code'] ) && empty( $settings['disable_insertion'] ) && !empty( $settings['enable_feed'] ) ) {
320
+ add_action( 'admin_notices', array( 'XMLSF_Admin_Notices', 'notice_ad_inserter_feed' ) );
321
+ break;
322
+ }
323
+ }
324
+ }
325
+ }
326
  }
327
 
328
  public function tools_actions()
models/functions.public-sitemap.php CHANGED
@@ -383,7 +383,7 @@ function xmlsf_set_terms_args( $args ) {
383
  $args['orderby'] = 'count';
384
  $args['pad_counts'] = true;
385
  $args['lang'] = '';
386
- $args['hierachical'] = 0;
387
  $args['suppress_filter'] = true;
388
 
389
  return $args;
383
  $args['orderby'] = 'count';
384
  $args['pad_counts'] = true;
385
  $args['lang'] = '';
386
+ $args['hierarchical'] = 0;
387
  $args['suppress_filter'] = true;
388
 
389
  return $args;
models/functions.sitemap-news.php CHANGED
@@ -8,10 +8,10 @@
8
  * @return array
9
  */
10
  function xmlsf_news_filter_post_types( $post_types ) {
11
- foreach ( array('attachment','page','reply') as $post_type ) {
12
- if ( isset( $post_types[$post_type]) )
13
- unset( $post_types[$post_type] );
14
- }
15
 
16
- return array_filter( (array) $post_types );
 
 
 
17
  }
8
  * @return array
9
  */
10
  function xmlsf_news_filter_post_types( $post_types ) {
11
+ $post_types = (array) $post_types;
 
 
 
12
 
13
+ unset( $post_types['attachment'] );
14
+ unset( $post_types['reply'] );
15
+
16
+ return array_filter( $post_types );
17
  }
readme.txt CHANGED
@@ -4,14 +4,16 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=ravan
4
  Tags: sitemap, xml sitemap, news sitemap, sitemap.xml, robots.txt, Google, Google News, Yahoo, Bing, Yandex, Baidu, seo, feed, Polylang, WPML, image sitemap
5
  Requires at least: 4.4
6
  Requires PHP: 5.4
7
- Tested up to: 5.3
8
- Stable tag: 5.2.6
9
 
10
  XML and Google News Sitemaps to feed the hungry spiders. Multisite, WP Super Cache, Polylang and WPML compatible.
11
 
12
  == Description ==
13
 
14
- This plugin dynamically creates feeds that comply with the **XML Sitemap** and the **Google News Sitemap** protocol. **Multisite**, **Polylang** and **WPML** compatible and there are no files created. There are options to control which sitemaps are enabled, which Post types are included, how Priority and Lastmod are calculated, who to ping and a possibility to set additional robots.txt rules from within the WordPress admin.
 
 
15
 
16
  The main advantage of this plugin over other XML Sitemap plugins is **simplicity**. No need to change file or folder permissions, move files or spend time tweaking difficult plugin options.
17
 
@@ -34,16 +36,18 @@ Please read the FAQ's for info on how to get your articles listed on Google News
34
  * Compatible with multi-lingual sites using **Polylang** or **WPML** to allow all languages to be indexed equally.
35
  * Option to add new robots.txt rules. These can be used to further control (read: limit) the indexation of various parts of your site and subsequent spread of pagerank across your sites pages.
36
  * Includes XLS stylesheets for human readable sitemaps.
 
37
 
38
  **XML Sitemap**
39
 
40
- * Sitemap Index with optional inclusion of sitemaps for custom post types, categories and tags.
 
41
  * Sitemap with custom URLs optional.
42
  * Custom/static sitemaps can be added to the index.
43
  * Works out-of-the-box, even on **Multisite** installations.
44
- * Optionally include Image tags with caption and title for featured images or attached images.
45
- * Pings Google, Bing & Yahoo on new post publication, once per hour.
46
- * Options to define which post types and taxonomies get included in the sitemap
47
  * Updates Lastmod on post modification or on comments.
48
  * Set Priority per post type, per taxonomy and per individual post.
49
  * Exclude individual posts and pages.
@@ -58,7 +62,7 @@ Please read the FAQ's for info on how to get your articles listed on Google News
58
 
59
  = Pro Features =
60
 
61
- **[Google News Advanced](https://premium.status301.net/downloads/google-news-advanced/)**
62
 
63
  * Multiple post types - Include more than one post type in the same News Sitemap.
64
  * Keywords - Add the keywords tag to your News Sitemap. Keywords can be created from Tags, Categories or a dedicated Keywords taxonomy.
@@ -75,6 +79,7 @@ This plugin does not collect any user or visitor data nor set browser cookies. U
75
  An XML Sitemap index, referencing other sitemaps containing your web site's public post URLs of selected post types that are already public, along with their last modification date and associated image URLs, and any selected public archive URLs.
76
 
77
  A Google News Sitemap containing your web site's public and recent (last 48 hours) URLs of selected news post type, along with their publication time stamp and associated image URL.
 
78
 
79
  **Data that is transmitted**
80
 
@@ -144,7 +149,7 @@ Ping settings can be found on **Settings > Writing**.
144
 
145
  Go to [Suggest News Content for Google News](http://www.google.com/support/news_pub/bin/request.py?contact_type=suggest_content) and submit your website info as detailed as possible there. Give them the URL(s) of your fresh new Google News Sitemap in the text field 'Other' at the bottom.
146
 
147
- You will also want to add the sitemap to your [Google Webmasters Tools account](https://www.google.com/webmasters/tools/) to check its validity and performance. Create an account if you don't have one yet.
148
 
149
  = Can I manipulate values for Priority and Changefreq? =
150
 
@@ -194,7 +199,7 @@ Sitemap: http://yourblog.url/?feed=sitemap
194
  User-agent: *
195
  Allow: /
196
  `
197
- You can also choose to notify major search engines of your new XML sitemap manually. Start with getting a [Google Webmasters Tools account](https://www.google.com/webmasters/tools/) and submit your sitemap for the first time from there to enable tracking of sitemap downloads by Google! or head over to [XML-Sitemaps.com](http://www.xml-sitemaps.com/validate-xml-sitemap.html) and enter your sites sitemap URL.
198
 
199
  = Can I change the sitemap name/URL? =
200
 
@@ -222,7 +227,7 @@ The Google News sitemap is designed to NOT be cached.
222
 
223
  The absolute first thing you need to check is your blogs privacy settings. Go to **Settings > Privacy** and make sure you are **allowing search engines to index your site**. If they are blocked, your sitemap will _not_ be available.
224
 
225
- Then, you might want to make sure that there is at least ONE post published. WordPress is known to send 404 status headers with feed requests when there are NO posts. Even though the plugin tries to prevent that, in some cases the wrong status header will get sent anyway and Google Webmaster Tools will report a vague message like:
226
 
227
  We encountered an error while trying to access your Sitemap.
228
  Please ensure your Sitemap follows our guidelines and can be
@@ -291,13 +296,36 @@ Yes. In fact, it has been designed for it. Tested on WPMU 2.9.2 and WPMS 3+ both
291
 
292
  == Upgrade Notice ==
293
 
294
- = 5.2.6 =
295
 
296
- New action hooks, taxonomy selection bugfix and relative path stylesheets.
297
 
298
 
299
  == Changelog ==
300
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
301
  = 5.2.6 =
302
  * NEW: xmlsf_tags_after, xmlsf_url_after and xmlsf_news_url_after action hooks
303
  * Make stylesheet paths relative to prevent exclusion when using different language domains
4
  Tags: sitemap, xml sitemap, news sitemap, sitemap.xml, robots.txt, Google, Google News, Yahoo, Bing, Yandex, Baidu, seo, feed, Polylang, WPML, image sitemap
5
  Requires at least: 4.4
6
  Requires PHP: 5.4
7
+ Tested up to: 5.4
8
+ Stable tag: 5.2.7
9
 
10
  XML and Google News Sitemaps to feed the hungry spiders. Multisite, WP Super Cache, Polylang and WPML compatible.
11
 
12
  == Description ==
13
 
14
+ This plugin dynamically creates dynamic feeds that comply with the **XML Sitemap** and the **Google News Sitemap** protocol. **Multisite**, **Polylang** and **WPML** compatible and there are no static files created.
15
+
16
+ There are options to control which sitemaps are enabled, which Post Types and archive pages (like taxonomy terms and author pages) are included, how Priority and Lastmod are calculated, who to ping and a possibility to set additional robots.txt rules from within the WordPress admin.
17
 
18
  The main advantage of this plugin over other XML Sitemap plugins is **simplicity**. No need to change file or folder permissions, move files or spend time tweaking difficult plugin options.
19
 
36
  * Compatible with multi-lingual sites using **Polylang** or **WPML** to allow all languages to be indexed equally.
37
  * Option to add new robots.txt rules. These can be used to further control (read: limit) the indexation of various parts of your site and subsequent spread of pagerank across your sites pages.
38
  * Includes XLS stylesheets for human readable sitemaps.
39
+ * Sitemap templates and stylesheets can be overridden by theme template files.
40
 
41
  **XML Sitemap**
42
 
43
+ * Sitemap Index includes posts, pages and authors by default.
44
+ * Optionally include sitemaps for custom post types, categories and tags.
45
  * Sitemap with custom URLs optional.
46
  * Custom/static sitemaps can be added to the index.
47
  * Works out-of-the-box, even on **Multisite** installations.
48
+ * Include featured images or attached images with title.
49
+ * Pings Google, Bing & Yahoo on new post publication.
50
+ * Options to define which post types and taxonomies get included in the sitemap.
51
  * Updates Lastmod on post modification or on comments.
52
  * Set Priority per post type, per taxonomy and per individual post.
53
  * Exclude individual posts and pages.
62
 
63
  = Pro Features =
64
 
65
+ **[Google News Advanced](https://premium.status301.com/downloads/google-news-advanced/)**
66
 
67
  * Multiple post types - Include more than one post type in the same News Sitemap.
68
  * Keywords - Add the keywords tag to your News Sitemap. Keywords can be created from Tags, Categories or a dedicated Keywords taxonomy.
79
  An XML Sitemap index, referencing other sitemaps containing your web site's public post URLs of selected post types that are already public, along with their last modification date and associated image URLs, and any selected public archive URLs.
80
 
81
  A Google News Sitemap containing your web site's public and recent (last 48 hours) URLs of selected news post type, along with their publication time stamp and associated image URL.
82
+ An author sitemap can be included, which will contain links to author archive pages. These urls contain author/user slugs, and the author archives can contain author bio information. If you wish to keep this out of public domain, then deactivate the author sitemap and use an SEO plugin to add noindex headers.
83
 
84
  **Data that is transmitted**
85
 
149
 
150
  Go to [Suggest News Content for Google News](http://www.google.com/support/news_pub/bin/request.py?contact_type=suggest_content) and submit your website info as detailed as possible there. Give them the URL(s) of your fresh new Google News Sitemap in the text field 'Other' at the bottom.
151
 
152
+ You will also want to add the sitemap to your [Google Search Console account](https://search.google.com/search-console) to check its validity and performance. Create an account if you don't have one yet.
153
 
154
  = Can I manipulate values for Priority and Changefreq? =
155
 
199
  User-agent: *
200
  Allow: /
201
  `
202
+ You can also choose to notify major search engines of your new XML sitemap manually. Start with getting a [Google Search Console account](https://search.google.com/search-console) and submit your sitemap for the first time from there to enable tracking of sitemap downloads by Google! or head over to [XML-Sitemaps.com](http://www.xml-sitemaps.com/validate-xml-sitemap.html) and enter your sites sitemap URL.
203
 
204
  = Can I change the sitemap name/URL? =
205
 
227
 
228
  The absolute first thing you need to check is your blogs privacy settings. Go to **Settings > Privacy** and make sure you are **allowing search engines to index your site**. If they are blocked, your sitemap will _not_ be available.
229
 
230
+ Then, you might want to make sure that there is at least ONE post published. WordPress is known to send 404 status headers with feed requests when there are NO posts. Even though the plugin tries to prevent that, in some cases the wrong status header will get sent anyway and Google Search Console will report a vague message like:
231
 
232
  We encountered an error while trying to access your Sitemap.
233
  Please ensure your Sitemap follows our guidelines and can be
296
 
297
  == Upgrade Notice ==
298
 
299
+ = 5.3 =
300
 
 
301
 
302
 
303
  == Changelog ==
304
 
305
+ = 5.3 =
306
+ TODO verify date archive redirect Yoast Pro?
307
+ TODO custom post type root pages
308
+ TODO prime meta caches button
309
+ TODO Google News Feed tab
310
+ * NEW: Author sitemap
311
+ * NEW: allow custom theme templates and stylesheets
312
+ * NEW: request filters `xmlsf_request` and `xmlsf_news_request`
313
+ * NEW: news template filters `xmlsf_news_publication_name` and `xmlsf_news_title`
314
+ * NEW: sitemap template action hook `xmlsf_url`
315
+ * NEW: sitemap template action hooks `xmlsf_news_url` and `xmlsf_news_tags_inner`
316
+ * Moved news template action hook `xmlsf_news_tags_after` to after closing </news:news> tag
317
+ * Less DB queries, smaller memory footprint
318
+ * Better debug info with SAVEQUERIES
319
+ * FIX: invalid form control not focusable when meta box is hidden
320
+ * FIX: force Status 200 response
321
+ * FIX: priority calculation last modified for post type
322
+ * FIX: news sitemap redirection with Polylang
323
+
324
+ = 5.2.7 =
325
+ * NEW: Ad Inserter compatibility check
326
+ * NEW: xmlsf_urlset and xmlsf_news_urlset action hooks, thanks to Stanislav Khromov (@khromov)
327
+ * Exclude hierarchical post types from news sitemap
328
+
329
  = 5.2.6 =
330
  * NEW: xmlsf_tags_after, xmlsf_url_after and xmlsf_news_url_after action hooks
331
  * Make stylesheet paths relative to prevent exclusion when using different language domains
views/admin/field-news-hierarchical.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <fieldset>
2
+ <legend class="screen-reader-text">
3
+ <?php _e('Hierarchical post types','xml-sitemap-feed'); ?>
4
+ </legend>
5
+ <label>
6
+ <input type="checkbox" name="" id="xmlsf_news_hierarchical" value="1" disabled="disabled" />
7
+ <?php _e('Allow hierarchical post types', 'xml-sitemap-feed'); ?>
8
+ </label>
9
+
10
+ <p class="description">
11
+ <?php printf( /* Translators: Pages, General */ __('Activating this option will make all hierarchical post types like %1$s available on the %2$s tab.','xml-sitemap-feed'), translate('Pages'), translate('General') ); ?>
12
+ <?php printf( /* Translators: Sitemap tag name, Advanced plugin name */ __('%1$s are provided by the %2$s module.','xml-sitemap-feed'), __('Hierarchical post types','xml-sitemap-feed') ,'<a href="https://premium.status301.com/downloads/google-news-advanced/" target="_blank">'.__('Google News Advanced','xml-sitemap-feed').'</a>'); ?>
13
+ </p>
14
+ </fieldset>
views/admin/field-news-keywords.php CHANGED
@@ -3,11 +3,11 @@
3
  <?php _e('Keywords','xml-sitemap-feed'); ?>
4
  </legend>
5
  <label><?php _e('Use keywords from','xml-sitemap-feed'); ?>
6
- <select name="" disabled="disabled">
7
  <option value=""><?php echo translate('None'); ?></option>
8
- </select>
9
- </label>
10
  <p class="description">
11
- <?php printf( /* Translators: Sitemap tag name, Advanced plugin name */ __('%1$s are provided by the %2$s module.','xml-sitemap-feed'), __('Keywords','xml-sitemap-feed') ,'<a href="https://premium.status301.net/downloads/google-news-advanced/" target="_blank">'.__('Google News Advanced','xml-sitemap-feed').'</a>'); ?>
12
  </p>
13
  </fieldset>
3
  <?php _e('Keywords','xml-sitemap-feed'); ?>
4
  </legend>
5
  <label><?php _e('Use keywords from','xml-sitemap-feed'); ?>
6
+ <select name="" disabled="disabled">
7
  <option value=""><?php echo translate('None'); ?></option>
8
+ </select>
9
+ </label>
10
  <p class="description">
11
+ <?php printf( /* Translators: Sitemap tag name, Advanced plugin name */ __('%1$s are provided by the %2$s module.','xml-sitemap-feed'), __('Keywords','xml-sitemap-feed') ,'<a href="https://premium.status301.com/downloads/google-news-advanced/" target="_blank">'.__('Google News Advanced','xml-sitemap-feed').'</a>'); ?>
12
  </p>
13
  </fieldset>
views/admin/field-news-post-type.php CHANGED
@@ -9,7 +9,7 @@
9
  <?php endforeach; if ( $do_warning || 'radio' == $type ) : ?>
10
  <p class="description">
11
  <?php if ( $do_warning ) _e( 'Custom post types that do not use the post category taxonomy, cannot be included as long as any category is selected below.', 'xml-sitemap-feed' ); ?>
12
- <?php if ('radio' == $type) printf( /* Translators: Advanced plugin name */ __('Including multiple post types in the same News Sitemap is provided by the %s module.','xml-sitemap-feed'),'<a href="https://premium.status301.net/downloads/google-news-advanced/" target="_blank">'.__('Google News Advanced','xml-sitemap-feed').'</a>'); ?>
13
  </p>
14
  <?php endif; ?>
15
  </fieldset>
9
  <?php endforeach; if ( $do_warning || 'radio' == $type ) : ?>
10
  <p class="description">
11
  <?php if ( $do_warning ) _e( 'Custom post types that do not use the post category taxonomy, cannot be included as long as any category is selected below.', 'xml-sitemap-feed' ); ?>
12
+ <?php if ('radio' == $type) printf( /* Translators: Advanced plugin name */ __('Including multiple post types in the same News Sitemap is provided by the %s module.','xml-sitemap-feed'),'<a href="https://premium.status301.com/downloads/google-news-advanced/" target="_blank">'.__('Google News Advanced','xml-sitemap-feed').'</a>'); ?>
13
  </p>
14
  <?php endif; ?>
15
  </fieldset>
views/admin/field-news-stocktickers.php CHANGED
@@ -1,5 +1,5 @@
1
  <fieldset>
2
- <legend class="screen-reader-text">
3
  <?php _e('Stock tickers','xml-sitemap-feed'); ?>
4
  </legend>
5
  <label>
@@ -8,8 +8,7 @@
8
  </label>
9
 
10
  <p class="description">
11
- <?php _e('Stock tickers are relevant primarily for business articles.','xml-sitemap-feed'); ?>
12
- <br />
13
- <?php printf( /* Translators: Sitemap tag name, Advanced plugin name */ __('%1$s are provided by the %2$s module.','xml-sitemap-feed'), __('Stock tickers','xml-sitemap-feed') ,'<a href="https://premium.status301.net/downloads/google-news-advanced/" target="_blank">'.__('Google News Advanced','xml-sitemap-feed').'</a>'); ?>
14
  </p>
15
  </fieldset>
1
  <fieldset>
2
+ <legend class="screen-reader-text">
3
  <?php _e('Stock tickers','xml-sitemap-feed'); ?>
4
  </legend>
5
  <label>
8
  </label>
9
 
10
  <p class="description">
11
+ <?php _e('Stock tickers are relevant primarily for business articles.','xml-sitemap-feed'); ?>
12
+ <?php printf( /* Translators: Sitemap tag name, Advanced plugin name */ __('%1$s are provided by the %2$s module.','xml-sitemap-feed'), __('Stock tickers','xml-sitemap-feed') ,'<a href="https://premium.status301.com/downloads/google-news-advanced/" target="_blank">'.__('Google News Advanced','xml-sitemap-feed').'</a>'); ?>
 
13
  </p>
14
  </fieldset>
views/admin/help-tab-news-sidebar.php CHANGED
@@ -2,11 +2,11 @@
2
  <strong><?php echo translate('For more information:'); ?></strong>
3
  </p>
4
  <ul>
5
- <li>
6
  <a href="https://support.google.com/news/publisher-center/answer/74288" target="_blank"><?php _e( /* https://support.google.com/news/publisher-center/answer/74288 */ 'Create a Google News sitemap', 'xml-sitemap-feed' ); ?></a>
7
- </li>
8
  <li>
9
- <a href="https://support.google.com/news/publisher-center/answer/184732" target="_blank"><?php _e( /* https://support.google.com/news/publisher-center/answer/184732 */ 'Validate a News sitemap', 'xml-sitemap-feed' ); ?></a>
10
  </li>
11
  <li>
12
  <a href="https://support.google.com/news/publisher-center/answer/6075793" target="_blank"><?php _e( /* https://support.google.com/news/publisher-center/answer/6075793 */ 'News sitemap errors', 'xml-sitemap-feed' ); ?></a>
@@ -20,4 +20,10 @@
20
  <li>
21
  <a href="https://support.google.com/news/publisher-center/answer/70871" target="_blank"><?php _e( /* https://support.google.com/news/publisher-center/answer/70871 */ 'Incorrect article date', 'xml-sitemap-feed' ); ?></a>
22
  </li>
 
 
 
 
 
 
23
  </ul>
2
  <strong><?php echo translate('For more information:'); ?></strong>
3
  </p>
4
  <ul>
5
+ <!--<li>
6
  <a href="https://support.google.com/news/publisher-center/answer/74288" target="_blank"><?php _e( /* https://support.google.com/news/publisher-center/answer/74288 */ 'Create a Google News sitemap', 'xml-sitemap-feed' ); ?></a>
7
+ </li>-->
8
  <li>
9
+ <a href="https://support.google.com/news/publisher/answer/40787" target="_blank"><?php _e( /* https://support.google.com/news/publisher/answer/40787 */ 'Getting into Google News', 'xml-sitemap-feed' ); ?></a>
10
  </li>
11
  <li>
12
  <a href="https://support.google.com/news/publisher-center/answer/6075793" target="_blank"><?php _e( /* https://support.google.com/news/publisher-center/answer/6075793 */ 'News sitemap errors', 'xml-sitemap-feed' ); ?></a>
20
  <li>
21
  <a href="https://support.google.com/news/publisher-center/answer/70871" target="_blank"><?php _e( /* https://support.google.com/news/publisher-center/answer/70871 */ 'Incorrect article date', 'xml-sitemap-feed' ); ?></a>
22
  </li>
23
+ <li>
24
+ <a href="https://support.google.com/googlenews/" target="_blank"><?php _e( /* https://support.google.com/googlenews/ */ 'Google News Help Center', 'xml-sitemap-feed' ); ?></a>
25
+ </li>
26
+ <li>
27
+ <a href="https://support.google.com/googlenews/community" target="_blank"><?php _e( /* https://support.google.com/googlenews/community */ 'Publisher Help Forum', 'xml-sitemap-feed' ); ?></a>
28
+ </li>
29
  </ul>
views/admin/help-tab-sitemaps.php CHANGED
@@ -1,3 +1,3 @@
1
  <p>
2
- <?php _e( /* https://support.google.com/webmasters/answer/156184 */ 'XML sitemaps list the web pages of your site to tell search engines about the organization of your site content. Search engine web crawlers read this file to more intelligently crawl your site.', 'xml-sitemap-feed' ); ?>
3
  </p>
1
  <p>
2
+ <?php _e( 'XML sitemaps list the web pages of your site to tell search engines about the organization of your site content. Search engine web crawlers read this file to more intelligently crawl your site.', 'xml-sitemap-feed' ); ?>
3
  </p>
views/admin/notice-ad-insterter-feed.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="notice notice-error fade is-dismissible">
2
+ <p>
3
+ <?php printf( /* Translators: RSS Feed (plugin option name), Plugin name, plugin settings page (linked) */
4
+ __( 'The option %1$s in %2$s is not compatible with %3$s. Please disable it under the %4$s tab of each active ad block.', 'xml-sitemap-feed'),
5
+ '<strong>' . translate('RSS Feed', 'ad-inserter') . '</strong>',
6
+ '<a href="' . admin_url('options-general.php') . '?page=ad-inserter.php">' . translate('Ad Inserter', 'ad-inserter') . '</a>',
7
+ __('XML Sitemap & Google News','xml-sitemap-feed'),
8
+ translate('Misc', 'ad-inserter')
9
+ ); ?>
10
+ </p>
11
+ </div>
views/admin/notice-catchbox-feed-redirect.php CHANGED
@@ -1,22 +1,11 @@
1
  <div class="notice notice-error fade is-dismissible">
2
- <p>
3
- <strong><?php _e('XML Sitemap & Google News','xml-sitemap-feed'); ?></strong>
4
- </p>
5
- <p>
6
- <?php printf( /* Translators: Feed Redirect URL (Theme option name), Plugn name, Theme Options, Customizer (linked to Customizer page) */
7
- __( 'The Catch Box theme option %1$s is not compatible with %2$s. Please go to %3$s in the %4$s and remove it.', 'xml-sitemap-feed'),
8
- '<strong>' . translate('Feed Redirect URL', 'catch-box') . '</strong>',
9
- __('XML Sitemap & Google News','xml-sitemap-feed'),
10
- '<strong>' . translate('Theme Options', 'catch-box') . '</strong>',
11
- '<a href="' . admin_url('customize.php') . '" target="_blank">' . translate('Customizer') . '</a>'
12
- );
13
- ?>
14
- </p>
15
- <form action="" method="post">
16
- <?php wp_nonce_field( XMLSF_BASENAME.'-notice', '_xmlsf_notice_nonce' ); ?>
17
- <p>
18
- <input type="hidden" name="xmlsf-dismiss" value="catchbox_feed_redirect" />
19
- <input type="submit" class="button button-small" name="xmlsf-dismiss-submit" value="<?php echo translate('Dismiss'); ?>" />
20
- </p>
21
- </form>
22
  </div>
1
  <div class="notice notice-error fade is-dismissible">
2
+ <p>
3
+ <?php printf( /* Translators: Feed Redirect URL (Theme option name), Plugn name, Theme Options, Customizer (linked to Customizer page) */
4
+ __( 'The Catch Box theme option %1$s is not compatible with %2$s. Please go to %3$s in the %4$s and remove it.', 'xml-sitemap-feed'),
5
+ '<strong>' . translate('Feed Redirect URL', 'catch-box') . '</strong>',
6
+ __('XML Sitemap & Google News','xml-sitemap-feed'),
7
+ '<strong>' . translate('Theme Options', 'catch-box') . '</strong>',
8
+ '<a href="' . admin_url('customize.php') . '" target="_blank">' . translate('Customizer') . '</a>'
9
+ ); ?>
10
+ </p>
 
 
 
 
 
 
 
 
 
 
 
11
  </div>
views/admin/notice-rankmath-date-redirect.php CHANGED
@@ -1,7 +1,4 @@
1
  <div class="notice notice-error fade is-dismissible">
2
- <p>
3
- <strong><?php _e('XML Sitemap & Google News','xml-sitemap-feed'); ?></strong>
4
- </p>
5
  <p>
6
  <?php printf( /* translators: conflicting plugin name */
7
  __( 'A setting in the %s plugin causes all date based sitemaps to redirect to the main page.', 'xml-sitemap-feed'),
@@ -16,11 +13,4 @@
16
  '<a href="' . admin_url('options-general.php') . '?page=xmlsf">' . __('Included post types','xml-sitemap-feed') . '</a>'
17
  ); ?>
18
  </p>
19
- <form action="" method="post">
20
- <?php wp_nonce_field( XMLSF_BASENAME.'-notice', '_xmlsf_notice_nonce' ); ?>
21
- <p>
22
- <input type="hidden" name="xmlsf-dismiss" value="rankmath_date_redirect" />
23
- <input type="submit" class="button button-small" name="xmlsf-dismiss-submit" value="<?php echo translate('Dismiss'); ?>" />
24
- </p>
25
- </form>
26
  </div>
1
  <div class="notice notice-error fade is-dismissible">
 
 
 
2
  <p>
3
  <?php printf( /* translators: conflicting plugin name */
4
  __( 'A setting in the %s plugin causes all date based sitemaps to redirect to the main page.', 'xml-sitemap-feed'),
13
  '<a href="' . admin_url('options-general.php') . '?page=xmlsf">' . __('Included post types','xml-sitemap-feed') . '</a>'
14
  ); ?>
15
  </p>
 
 
 
 
 
 
 
16
  </div>
views/admin/notice-rankmath-sitemap.php CHANGED
@@ -1,4 +1,4 @@
1
- <div class="notice notice-error fade is-dismissible">
2
  <p>
3
  <strong><?php _e('XML Sitemap & Google News','xml-sitemap-feed'); ?></strong>
4
  </p>
1
+ <div class="notice notice-warning fade is-dismissible">
2
  <p>
3
  <strong><?php _e('XML Sitemap & Google News','xml-sitemap-feed'); ?></strong>
4
  </p>
views/admin/notice-seopress-date-redirect.php CHANGED
@@ -1,7 +1,4 @@
1
  <div class="notice notice-error fade is-dismissible">
2
- <p>
3
- <strong><?php _e('XML Sitemap & Google News','xml-sitemap-feed'); ?></strong>
4
- </p>
5
  <p>
6
  <?php printf( /* translators: conflicting plugin name */
7
  __( 'A setting in the %s plugin causes all date based sitemaps to redirect to the main page.', 'xml-sitemap-feed'),
@@ -16,11 +13,4 @@
16
  '<a href="' . admin_url('options-general.php') . '?page=xmlsf">' . __('Included post types','xml-sitemap-feed') . '</a>'
17
  ); ?>
18
  </p>
19
- <form action="" method="post">
20
- <?php wp_nonce_field( XMLSF_BASENAME.'-notice', '_xmlsf_notice_nonce' ); ?>
21
- <p>
22
- <input type="hidden" name="xmlsf-dismiss" value="seopress_date_redirect" />
23
- <input type="submit" class="button button-small" name="xmlsf-dismiss-submit" value="<?php echo translate('Dismiss'); ?>" />
24
- </p>
25
- </form>
26
  </div>
1
  <div class="notice notice-error fade is-dismissible">
 
 
 
2
  <p>
3
  <?php printf( /* translators: conflicting plugin name */
4
  __( 'A setting in the %s plugin causes all date based sitemaps to redirect to the main page.', 'xml-sitemap-feed'),
13
  '<a href="' . admin_url('options-general.php') . '?page=xmlsf">' . __('Included post types','xml-sitemap-feed') . '</a>'
14
  ); ?>
15
  </p>
 
 
 
 
 
 
 
16
  </div>
views/admin/notice-seopress-sitemap.php CHANGED
@@ -1,4 +1,4 @@
1
- <div class="notice notice-error fade is-dismissible">
2
  <p>
3
  <strong><?php _e('XML Sitemap & Google News','xml-sitemap-feed'); ?></strong>
4
  </p>
1
+ <div class="notice notice-warning fade is-dismissible">
2
  <p>
3
  <strong><?php _e('XML Sitemap & Google News','xml-sitemap-feed'); ?></strong>
4
  </p>
views/admin/notice-static-files.php CHANGED
@@ -1,13 +1,13 @@
1
  <div class="notice notice-warning fade is-dismissible">
2
  <p>
3
- <strong><?php _e('XML Sitemap & Google News','xml-sitemap-feed'); ?></strong>
4
- </p>
5
- <p>
6
- <?php printf( /* translators: %1$s number of files, %2$s is Reading Settings URL */ _n(
7
- 'The following static file has been found. Either delete it or disable the conflicting <a href="%2$s">sitemap</a>.',
8
- 'The following %1$s static files have been found. Either delete them or disable the conflicting <a href="%2$s">sitemaps</a>.',
9
- $number,'xml-sitemap-feed'), number_format_i18n($number), admin_url('options-reading.php') . '#xmlsf_sitemaps' ); ?>
10
- </p>
11
  <form action="" method="post">
12
  <?php wp_nonce_field( XMLSF_BASENAME.'-notice', '_xmlsf_notice_nonce' ); ?>
13
  <ul>
@@ -22,6 +22,6 @@
22
  &nbsp;
23
  <input type="hidden" name="xmlsf-dismiss" value="static_files" />
24
  <input type="submit" class="button button-small" name="xmlsf-dismiss-submit" value="<?php echo translate('Dismiss'); ?>" />
25
- </p>
26
  </form>
27
  </div>
1
  <div class="notice notice-warning fade is-dismissible">
2
  <p>
3
+ <strong><?php _e('XML Sitemap & Google News','xml-sitemap-feed'); ?></strong>
4
+ </p>
5
+ <p>
6
+ <?php printf( /* translators: %1$s number of files, %2$s is Reading Settings URL */ _n(
7
+ 'The following static file has been found. Either delete it or disable the conflicting <a href="%2$s">sitemap</a>.',
8
+ 'The following %1$s static files have been found. Either delete them or disable the conflicting <a href="%2$s">sitemaps</a>.',
9
+ $number,'xml-sitemap-feed'), number_format_i18n($number), admin_url('options-reading.php') . '#xmlsf_sitemaps' ); ?>
10
+ </p>
11
  <form action="" method="post">
12
  <?php wp_nonce_field( XMLSF_BASENAME.'-notice', '_xmlsf_notice_nonce' ); ?>
13
  <ul>
22
  &nbsp;
23
  <input type="hidden" name="xmlsf-dismiss" value="static_files" />
24
  <input type="submit" class="button button-small" name="xmlsf-dismiss-submit" value="<?php echo translate('Dismiss'); ?>" />
25
+ </p>
26
  </form>
27
  </div>
views/admin/notice-wpseo-date-redirect.php CHANGED
@@ -1,7 +1,4 @@
1
  <div class="notice notice-error fade is-dismissible">
2
- <p>
3
- <strong><?php _e('XML Sitemap & Google News','xml-sitemap-feed'); ?></strong>
4
- </p>
5
  <p>
6
  <?php printf( /* translators: conflicting plugin name */
7
  __( 'A setting in the %s plugin causes all date based sitemaps to redirect to the main page.', 'xml-sitemap-feed'),
@@ -16,11 +13,4 @@
16
  '<a href="' . admin_url('options-general.php') . '?page=xmlsf">' . __('Included post types','xml-sitemap-feed') . '</a>'
17
  ); ?>
18
  </p>
19
- <form action="" method="post">
20
- <?php wp_nonce_field( XMLSF_BASENAME.'-notice', '_xmlsf_notice_nonce' ); ?>
21
- <p>
22
- <input type="hidden" name="xmlsf-dismiss" value="wpseo_date_redirect" />
23
- <input type="submit" class="button button-small" name="xmlsf-dismiss-submit" value="<?php echo translate('Dismiss'); ?>" />
24
- </p>
25
- </form>
26
  </div>
1
  <div class="notice notice-error fade is-dismissible">
 
 
 
2
  <p>
3
  <?php printf( /* translators: conflicting plugin name */
4
  __( 'A setting in the %s plugin causes all date based sitemaps to redirect to the main page.', 'xml-sitemap-feed'),
13
  '<a href="' . admin_url('options-general.php') . '?page=xmlsf">' . __('Included post types','xml-sitemap-feed') . '</a>'
14
  ); ?>
15
  </p>
 
 
 
 
 
 
 
16
  </div>
views/admin/page-sitemap-news.php CHANGED
@@ -61,6 +61,8 @@
61
  </p>
62
  </form>
63
 
 
 
64
  <?php include XMLSF_DIR . '/views/admin/sidebar-help.php'; ?>
65
 
66
  <?php include XMLSF_DIR . '/views/admin/help-tab-news-sidebar.php'; ?>
61
  </p>
62
  </form>
63
 
64
+ <?php include XMLSF_DIR . '/views/admin/sidebar-news-links.php'; ?>
65
+
66
  <?php include XMLSF_DIR . '/views/admin/sidebar-help.php'; ?>
67
 
68
  <?php include XMLSF_DIR . '/views/admin/help-tab-news-sidebar.php'; ?>
views/admin/page-sitemap.php CHANGED
@@ -62,6 +62,8 @@
62
  </p>
63
  </form>
64
 
 
 
65
  <?php include XMLSF_DIR . '/views/admin/sidebar-help.php'; ?>
66
 
67
  <?php include XMLSF_DIR . '/views/admin/help-tab-sidebar.php'; ?>
62
  </p>
63
  </form>
64
 
65
+ <?php include XMLSF_DIR . '/views/admin/sidebar-links.php'; ?>
66
+
67
  <?php include XMLSF_DIR . '/views/admin/sidebar-help.php'; ?>
68
 
69
  <?php include XMLSF_DIR . '/views/admin/help-tab-sidebar.php'; ?>
views/admin/section-advanced-intro.php CHANGED
@@ -1,3 +1,3 @@
1
  <p>
2
- <?php printf( /* Translators: Advanced options, Advanced plugin name */ __('%1$s are provided by the %2$s module.','xml-sitemap-feed'), __('Advanced options','xml-sitemap-feed') ,'<a href="https://premium.status301.net/downloads/google-news-advanced/" target="_blank">'.__('Google News Advanced','xml-sitemap-feed').'</a>'); ?>
3
  </p>
1
  <p>
2
+ <?php printf( /* Translators: Advanced options, Advanced plugin name */ __('%1$s are provided by the %2$s module.','xml-sitemap-feed'), __('Advanced options','xml-sitemap-feed') ,'<a href="https://premium.status301.com/downloads/google-news-advanced/" target="_blank">'.__('Google News Advanced','xml-sitemap-feed').'</a>'); ?>
3
  </p>
views/admin/sidebar-links.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <h3><span class="dashicons dashicons-admin-links"></span> <?php echo translate('Links'); ?></h3>
2
+ <ul>
3
+ <li>
4
+ <a href="https://search.google.com/search-console" target="_blank"><?php _e( /* https://search.google.com/search-console */ 'Google Search Console', 'xml-sitemap-feed' ); ?></a>
5
+ </li>
6
+ <li>
7
+ <a href="https://www.bing.com/webmaster/home/mysites" target="_blank"><?php _e( /* https://www.bing.com/webmaster/home/mysites */ 'Bing Webmaster Tool', 'xml-sitemap-feed' ); ?></a>
8
+ </li>
9
+ <li>
10
+ <a href="https://ziyuan.baidu.com/site/index" target="_blank"><?php _e( /* https://ziyuan.baidu.com/site/index */ 'Baidu Webmaster Tools', 'xml-sitemap-feed' ); ?></a>
11
+ </li>
12
+ <li>
13
+ <a href="https://webmaster.yandex.com/sites/" target="_blank"><?php _e( /* https://webmaster.yandex.com/sites/ */ 'Yandex.Webmaster', 'xml-sitemap-feed' ); ?></a>
14
+ </li>
15
+ <li>
16
+ <a href="https://www.xml-sitemaps.com/validate-xml-sitemap.html" target="_blank"><?php _e( /* https://www.xml-sitemaps.com/validate-xml-sitemap.html */ 'Validate an XML Sitemap', 'xml-sitemap-feed' ); ?></a>
17
+ </li>
18
+ </ul>
views/admin/sidebar-news-links.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <h3><span class="dashicons dashicons-admin-links"></span> <?php echo translate('Links'); ?></h3>
2
+ <ul>
3
+ <li>
4
+ <a href="https://partnerdash.google.com/partnerdash/d/news#p:id=pfehome" target="_blank"><?php _e( /* https://partnerdash.google.com/partnerdash/d/news#p:id=pfehome */ 'Google News Publisher Center', 'xml-sitemap-feed' ); ?></a>
5
+ </li>
6
+ <li>
7
+ <a href="https://search.google.com/search-console" target="_blank"><?php _e( /* */ 'Google Search Console', 'xml-sitemap-feed' ); ?></a>
8
+ </li>
9
+ <li>
10
+ <a href="https://www.xml-sitemaps.com/validate-xml-sitemap.html" target="_blank"><?php _e( /* https://www.xml-sitemaps.com/validate-xml-sitemap.html */ 'Validate an XML Sitemap', 'xml-sitemap-feed' ); ?></a>
11
+ </li>
12
+ </ul>
views/feed-sitemap-custom.php CHANGED
@@ -13,6 +13,7 @@ echo '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?>
13
  '; ?>
14
  <?php xmlsf_generator(); ?>
15
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
 
16
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
17
  xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
18
  http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
@@ -29,8 +30,10 @@ if ( is_array($urls) ) :
29
  <url>
30
  <loc><?php echo esc_url( $url[0] ); ?></loc>
31
  <priority><?php echo ( isset($url[1]) && is_numeric($url[1]) ) ? $url[1] : '0.5'; ?></priority>
 
32
  </url>
33
  <?php
 
34
  };
35
 
36
  endif;
13
  '; ?>
14
  <?php xmlsf_generator(); ?>
15
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
16
+ <?php do_action('xmlsf_urlset', 'custom'); ?>
17
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
18
  xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
19
  http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
30
  <url>
31
  <loc><?php echo esc_url( $url[0] ); ?></loc>
32
  <priority><?php echo ( isset($url[1]) && is_numeric($url[1]) ) ? $url[1] : '0.5'; ?></priority>
33
+ <?php do_action( 'xmlsf_tags_after', 'custom' ); ?>
34
  </url>
35
  <?php
36
+ do_action( 'xmlsf_url_after', 'custom' );
37
  };
38
 
39
  endif;
views/feed-sitemap-home.php CHANGED
@@ -13,6 +13,7 @@ echo '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?>
13
  '; ?>
14
  <?php xmlsf_generator(); ?>
15
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
 
16
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
17
  xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
18
  http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
@@ -23,8 +24,10 @@ foreach ( xmlsf_get_root_data() as $url => $data ) {
23
  <loc><?php echo esc_url( $url ); ?></loc>
24
  <priority><?php echo $data['priority']; ?></priority>
25
  <lastmod><?php echo $data['lastmod']; ?></lastmod>
 
26
  </url>
27
  <?php
 
28
  }
29
  ?>
30
  </urlset>
13
  '; ?>
14
  <?php xmlsf_generator(); ?>
15
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
16
+ <?php do_action('xmlsf_urlset', 'home'); ?>
17
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
18
  xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
19
  http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
24
  <loc><?php echo esc_url( $url ); ?></loc>
25
  <priority><?php echo $data['priority']; ?></priority>
26
  <lastmod><?php echo $data['lastmod']; ?></lastmod>
27
+ <?php do_action( 'xmlsf_tags_after', 'home' ); ?>
28
  </url>
29
  <?php
30
+ do_action( 'xmlsf_url_after', 'home' );
31
  }
32
  ?>
33
  </urlset>
views/feed-sitemap-news.php CHANGED
@@ -15,6 +15,7 @@ echo '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?>
15
  '; ?>
16
  <?php xmlsf_generator(); ?>
17
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
 
18
  xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
19
  <?php
20
 
15
  '; ?>
16
  <?php xmlsf_generator(); ?>
17
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
18
+ <?php do_action('xmlsf_urlset', 'news'); ?>
19
  xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
20
  <?php
21
 
views/feed-sitemap-post_type.php CHANGED
@@ -27,6 +27,7 @@ echo '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?>
27
  '; ?>
28
  <?php xmlsf_generator(); ?>
29
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
 
30
  <?php echo $image_xmlns; ?>
31
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
32
  xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
@@ -77,11 +78,11 @@ if ( have_posts() ) :
77
  }
78
  endif;
79
 
80
- do_action( 'xmlsf_tags_after' );
81
  ?>
82
  </url>
83
  <?php
84
- do_action( 'xmlsf_url_after' );
85
  endwhile;
86
  endif;
87
 
27
  '; ?>
28
  <?php xmlsf_generator(); ?>
29
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
30
+ <?php do_action('xmlsf_urlset', 'post_type'); ?>
31
  <?php echo $image_xmlns; ?>
32
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
33
  xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
78
  }
79
  endif;
80
 
81
+ do_action( 'xmlsf_tags_after', 'post_type' );
82
  ?>
83
  </url>
84
  <?php
85
+ do_action( 'xmlsf_url_after', 'post_type' );
86
  endwhile;
87
  endif;
88
 
views/feed-sitemap-taxonomy.php CHANGED
@@ -13,6 +13,7 @@ echo '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?>
13
  '; ?>
14
  <?php xmlsf_generator(); ?>
15
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
 
16
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
17
  xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
18
  http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
@@ -27,10 +28,13 @@ if ( is_array($terms) ) :
27
  <priority><?php echo xmlsf_get_term_priority( $term ); ?></priority>
28
  <?php if ( $lastmod = xmlsf_get_term_modified( $term ) ) { ?>
29
  <lastmod><?php echo $lastmod; ?></lastmod>
30
- <?php } ?>
 
 
31
  </url>
32
  <?php
33
- endforeach;
 
34
  endif;
35
 
36
  ?></urlset>
13
  '; ?>
14
  <?php xmlsf_generator(); ?>
15
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
16
+ <?php do_action('xmlsf_urlset', 'taxonomy'); ?>
17
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
18
  xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
19
  http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
28
  <priority><?php echo xmlsf_get_term_priority( $term ); ?></priority>
29
  <?php if ( $lastmod = xmlsf_get_term_modified( $term ) ) { ?>
30
  <lastmod><?php echo $lastmod; ?></lastmod>
31
+ <?php }
32
+ do_action( 'xmlsf_tags_after', 'taxonomy' );
33
+ ?>
34
  </url>
35
  <?php
36
+ do_action( 'xmlsf_url_after', 'taxonomy' );
37
+ endforeach;
38
  endif;
39
 
40
  ?></urlset>
xml-sitemap.php CHANGED
@@ -2,8 +2,8 @@
2
  /*
3
  Plugin Name: XML Sitemap & Google News
4
  Plugin URI: http://status301.net/wordpress-plugins/xml-sitemap-feed/
5
- Description: Feed the hungry spiders in compliance with the XML Sitemap and Google News protocols. Happy with the results? Please leave me a <strong><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=ravanhagen%40gmail%2ecom&item_name=XML%20Sitemap%20Feed">tip</a></strong> for continued development and support. Thanks :)
6
- Version: 5.2.6
7
  Text Domain: xml-sitemap-feed
8
  Requires at least: 4.6
9
  Requires PHP: 5.4
@@ -11,7 +11,7 @@ Author: RavanH
11
  Author URI: http://status301.net/
12
  */
13
 
14
- define( 'XMLSF_VERSION', '5.2.6' );
15
 
16
  /* Copyright 2019 RavanH
17
  http://status301.net/
@@ -58,13 +58,20 @@ define( 'XMLSF_VERSION', '5.2.6' );
58
  * xmlsf_news_post_types -> Filters the post types array for the Google News sitemap settings page.
59
  *
60
  * ACTIONS
61
- * xmlsf_ping -> Fires hen a search engine has been pinged. Carries four arguments:
62
  * search engine (google|bing), sitemap name, full ping url, ping repsonse code.
63
- * xmlsf_tags_after -> Fired inside the XML Sitemap loop at the end of the tags,
64
- * just before each closing </url> is generated. Can be used to
65
- * echo custom tags or trigger another action in the background.
66
- * xmlsf_url_after -> Fired inside the XML Sitemap loop after each url node.
67
- * Can be used to append alternative url or trigger another action in the background.
 
 
 
 
 
 
 
68
  * xmlsf_news_tags_after -> Fired inside the Google News Sitemap loop at the end of the news
69
  * tags, just before each closing </news:news> is generated. Can be used to
70
  * echo custom tags or trigger another action in the background.
@@ -73,9 +80,9 @@ define( 'XMLSF_VERSION', '5.2.6' );
73
  * xmlsf_news_settings_before -> Fired before the Google News Sitemap settings form
74
  * xmlsf_news_settings_after -> Fired after the Google News Sitemap settings form
75
  *
76
- * --------------------
77
  * AVAILABLE FUNCTIONS
78
- * --------------------
79
  *
80
  * is_sitemap() -> conditional, returns bolean, true if the request is for an xml sitemap
81
  * is_news() -> conditional, returns bolean, true if the request is for an xml news sitemap
2
  /*
3
  Plugin Name: XML Sitemap & Google News
4
  Plugin URI: http://status301.net/wordpress-plugins/xml-sitemap-feed/
5
+ Description: Feed the hungry spiders in compliance with the XML Sitemap and Google News protocols. Happy with the results? Please leave me a <strong><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=ravanhagen%40gmail%2ecom&item_name=XML%20Sitemap%20Feed">tip</a></strong> for continued development and support. Thanks :)
6
+ Version: 5.2.7
7
  Text Domain: xml-sitemap-feed
8
  Requires at least: 4.6
9
  Requires PHP: 5.4
11
  Author URI: http://status301.net/
12
  */
13
 
14
+ define( 'XMLSF_VERSION', '5.2.7' );
15
 
16
  /* Copyright 2019 RavanH
17
  http://status301.net/
58
  * xmlsf_news_post_types -> Filters the post types array for the Google News sitemap settings page.
59
  *
60
  * ACTIONS
61
+ * xmlsf_ping -> Fires when a search engine has been pinged. Carries four arguments:
62
  * search engine (google|bing), sitemap name, full ping url, ping repsonse code.
63
+ * xmlsf_urlset -> Fired inside each sitemap urlset tag. Can be used to
64
+ * echo additional XML namespaces. Passes parameter home|post_type|taxonomy|custom
65
+ * to allow identification of the current sitemap.
66
+ * xmlsf_tags_after -> Fired inside the XML Sitemap loop at the end of the tags, just before each
67
+ * closing </url> is generated. Can be used to echo custom tags or trigger another
68
+ * action in the background. Passes parameter home|post_type|taxonomy|custom
69
+ * to allow identification of the current sitemap.
70
+ * xmlsf_url_after -> Fired inside the XML Sitemap loop after each url node. Can be used to append
71
+ * alternative url or trigger another action in the background. Passes parameter
72
+ * home|post_type|taxonomy|custom to allow identification of the current sitemap.
73
+ * xmlsf_news_urlset -> Fired inside the Google News Sitemap urlset tag. Can be used to
74
+ * echo additional XML namespaces.
75
  * xmlsf_news_tags_after -> Fired inside the Google News Sitemap loop at the end of the news
76
  * tags, just before each closing </news:news> is generated. Can be used to
77
  * echo custom tags or trigger another action in the background.
80
  * xmlsf_news_settings_before -> Fired before the Google News Sitemap settings form
81
  * xmlsf_news_settings_after -> Fired after the Google News Sitemap settings form
82
  *
83
+ * ---------------------
84
  * AVAILABLE FUNCTIONS
85
+ * ---------------------
86
  *
87
  * is_sitemap() -> conditional, returns bolean, true if the request is for an xml sitemap
88
  * is_news() -> conditional, returns bolean, true if the request is for an xml news sitemap