XML Sitemap & Google News feeds - Version 4.6.2

Version Description

  • NEW: filter xmlsf_custom_urls
  • More cleanup
  • BUGFIX: broken Polylang compatibility reported by @zesseb
Download this release

Release Info

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

Code changes from version 4.6.1 to 4.6.2

includes/admin.php CHANGED
@@ -125,7 +125,7 @@ class XMLSF_Admin extends XMLSitemapFeed {
125
  if (!empty($options[$key]['pong'])) {
126
  if ( $tzstring = get_option('timezone_string') ) {
127
  // use same timezoneformat as translatable examples in options-general.php
128
- $timezone_format = _x('Y-m-d G:i:s', 'timezone date format');
129
  date_default_timezone_set($tzstring);
130
  } else {
131
  $timezone_format = 'Y-m-d G:i:s T';
@@ -475,7 +475,7 @@ jQuery( document ).ready( function() {
475
  echo '
476
  <fieldset><legend class="screen-reader-text">'.__('Publication name','xml-sitemap-feed').'</legend>
477
  <input type="text" name="'.parent::prefix().'news_tags[name]" id="xmlsf_news_name" value="'.$name.'" class="regular-text"> <span class="description">'.sprintf(__('By default, the general %s setting will be used.','xml-sitemap-feed'),'<a href="options-general.php">'.translate('Site Title').'</a>').'</span><p class="description">' .
478
- __('The publication name should match the name submitted on the Google News Publisher Center. If you wish to change it, please read <a href="https://support.google.com/news/publisher/answer/40402" target="_blank">Updated publication name</a>.') . '</p>
479
  </fieldset>';
480
  }
481
 
125
  if (!empty($options[$key]['pong'])) {
126
  if ( $tzstring = get_option('timezone_string') ) {
127
  // use same timezoneformat as translatable examples in options-general.php
128
+ $timezone_format = translate_with_gettext_context('Y-m-d G:i:s', 'timezone date format');
129
  date_default_timezone_set($tzstring);
130
  } else {
131
  $timezone_format = 'Y-m-d G:i:s T';
475
  echo '
476
  <fieldset><legend class="screen-reader-text">'.__('Publication name','xml-sitemap-feed').'</legend>
477
  <input type="text" name="'.parent::prefix().'news_tags[name]" id="xmlsf_news_name" value="'.$name.'" class="regular-text"> <span class="description">'.sprintf(__('By default, the general %s setting will be used.','xml-sitemap-feed'),'<a href="options-general.php">'.translate('Site Title').'</a>').'</span><p class="description">' .
478
+ __('The publication name should match the name submitted on the Google News Publisher Center. If you wish to change it, please read <a href="https://support.google.com/news/publisher/answer/40402" target="_blank">Updated publication name</a>.','xml-sitemap-feed') . '</p>
479
  </fieldset>';
480
  }
481
 
includes/core.php CHANGED
@@ -18,6 +18,9 @@ class XMLSitemapFeed {
18
  // Database options prefix
19
  private $prefix = 'xmlsf_';
20
 
 
 
 
21
  // Flushed flag
22
  private $yes_mother = false;
23
 
@@ -150,8 +153,6 @@ class XMLSitemapFeed {
150
 
151
  // robots
152
  $this->defaults['robots'] = "";
153
- // Old rules "Disallow: */xmlrpc.php\nDisallow: */wp-*.php\nDisallow: */trackback/\nDisallow: *?wptheme=\nDisallow: *?comments=\nDisallow: *?replytocom\nDisallow: */comment-page-\nDisallow: *?s=\nDisallow: */wp-content/\nAllow: */wp-content/uploads/\n";
154
- // Better is to set <meta name="robots" content="noindex, follow"> or send X-Robots-Tag header. TODO !!
155
 
156
  // additional urls
157
  $this->defaults['urls'] = array();
@@ -187,7 +188,16 @@ class XMLSitemapFeed {
187
  * QUERY FUNCTIONS
188
  */
189
 
190
- public function defaults($key = false)
 
 
 
 
 
 
 
 
 
191
  {
192
  if (empty($this->defaults))
193
  $this->set_defaults();
@@ -222,16 +232,14 @@ class XMLSitemapFeed {
222
  return (!empty($return)) ? (array)$return : array();
223
  }
224
 
225
- public function disabled_post_types()
226
  {
227
  return $this->disabled_post_types;
228
-
229
  }
230
 
231
- public function disabled_taxonomies()
232
  {
233
  return $this->disabled_taxonomies;
234
-
235
  }
236
 
237
  public function get_post_types()
@@ -285,17 +293,10 @@ class XMLSitemapFeed {
285
 
286
  public function get_urls()
287
  {
288
- $return = $this->get_option('urls');
289
-
290
  // make sure it's an array we are returning
291
- if(!empty($return)) {
292
- if(is_array($return))
293
- return $return;
294
- else
295
- return explode("\n",$return);
296
- } else {
297
- return array();
298
- }
299
  }
300
 
301
  public function get_domains()
@@ -374,7 +375,7 @@ class XMLSitemapFeed {
374
  if ( !empty($blogpage) ) {
375
  global $polylang;
376
  if ( isset($polylang) )
377
- $this->blogpage = $polylang->get_translations('post', $blogpage);
378
  else
379
  $this->blogpage = array($blogpage);
380
  } else {
@@ -633,7 +634,7 @@ class XMLSitemapFeed {
633
  if ( $post_type == 'page' && $id = get_option('page_on_front') ) {
634
  global $polylang;
635
  if ( isset($polylang) )
636
- $exclude += $polylang->get_translations('post', $id);
637
  else
638
  $exclude[] = $id;
639
  }
@@ -775,41 +776,27 @@ class XMLSitemapFeed {
775
 
776
  public function filter_request( $request )
777
  {
778
- if ( isset($request['feed']) && strpos($request['feed'],'sitemap') == 0 ) {
779
 
780
- if ( $request['feed'] == 'sitemap' ) {
781
-
782
- // setup actions and filters
783
- add_action('do_feed_sitemap', array($this, 'load_template_index'), 10, 1);
784
-
785
- return $request;
786
- }
787
-
788
- if ( $request['feed'] == 'sitemap-news' ) {
789
- $defaults = $this->defaults('news_tags');
790
  $options = $this->get_option('news_tags');
791
- $news_post_type = isset($options['post_type']) && !empty($options['post_type']) ? $options['post_type'] : $defaults['post_type'];
792
- if (empty($news_post_type)) $news_post_type = 'post';
 
 
 
 
793
 
794
  // disable caching
795
  define('DONOTCACHEPAGE', true);
796
  define('DONOTCACHEDB', true);
797
 
798
- // setup template
799
- add_action('do_feed_sitemap-news', array($this, 'load_template_news'), 10, 1);
800
-
801
  // set up query filters
802
- // TODO: test 'gmt' against 'blog' against 'server'
803
-
804
- if ( function_exists('date_default_timezone_set') ) {
805
- date_default_timezone_set ( 'UTC' );
806
- $zone = 'gmt';
807
- } else {
808
- $zone = 'blog';
809
- }
810
  if ( get_lastdate($zone, $news_post_type) > date('Y-m-d H:i:s', strtotime('-48 hours')) ) {
811
  add_filter('post_limits', array($this, 'filter_news_limits'));
812
- add_filter('posts_where', array($this, 'filter_news_where'), 10, 1);
813
  } else {
814
  add_filter('post_limits', array($this, 'filter_no_news_limits'));
815
  }
@@ -828,18 +815,10 @@ class XMLSitemapFeed {
828
  return $request;
829
  }
830
 
831
- if ( $request['feed'] == 'sitemap-home' ) {
832
- // setup actions and filters
833
- add_action('do_feed_sitemap-home', array($this, 'load_template_base'), 10, 1);
834
-
835
- return $request;
836
- }
837
-
838
- if ( strpos($request['feed'],'sitemap-posttype') == 0 ) {
839
  foreach ( $this->get_post_types() as $post_type ) {
840
  if ( $request['feed'] == 'sitemap-posttype-'.$post_type['name'] ) {
841
- // setup actions and filters
842
- add_action('do_feed_sitemap-posttype-'.$post_type['name'], array($this, 'load_template'), 10, 1);
843
  add_filter( 'post_limits', array($this, 'filter_limits') );
844
 
845
  // modify request parameters
@@ -856,12 +835,9 @@ class XMLSitemapFeed {
856
  }
857
  }
858
 
859
- if ( strpos($request['feed'],'sitemap-taxonomy') == 0 ) {
860
  foreach ( $this->get_taxonomies() as $taxonomy ) {
861
  if ( $request['feed'] == 'sitemap-taxonomy-'.$taxonomy ) {
862
- // setup actions and filters
863
- add_action('do_feed_sitemap-taxonomy-'.$taxonomy, array($this, 'load_template_taxonomy'), 10, 1);
864
-
865
  // modify request parameters
866
  $request['taxonomy'] = $taxonomy;
867
  $request['lang'] = '';
@@ -875,16 +851,7 @@ class XMLSitemapFeed {
875
  }
876
  }
877
  }
878
-
879
- if ( strpos($request['feed'],'sitemap-custom') == 0 ) {
880
- // setup actions and filters
881
- add_action('do_feed_sitemap-custom', array($this, 'load_template_custom'), 10, 1);
882
-
883
- return $request;
884
- }
885
-
886
  }
887
-
888
  return $request;
889
  }
890
 
@@ -938,21 +905,11 @@ class XMLSitemapFeed {
938
  return 'LIMIT 0, 50000';
939
  }
940
 
941
- // override default feed limit for taxonomy sitemaps
942
- public function filter_limits_taxonomy( $limits )
943
- {
944
- return 'LIMIT 0, 1';
945
- }
946
-
947
  // only posts from the last 48 hours
948
  public function filter_news_where( $where = '' )
949
  {
950
- if ( function_exists('date_default_timezone_set') ) {
951
- date_default_timezone_set ( 'UTC' );
952
- return $where . " AND post_date_gmt > '" . date('Y-m-d H:i:s', strtotime('-48 hours')) . "'";
953
- } else {
954
- return $where . " AND post_date > '" . date('Y-m-d H:i:s', strtotime('-48 hours')) . "'";
955
- }
956
  }
957
 
958
  // override default feed limit for GN
@@ -1060,8 +1017,9 @@ class XMLSitemapFeed {
1060
  delete_option('xmlsf_'.$option);
1061
  }
1062
 
1063
- if ( defined('WP_DEBUG') && WP_DEBUG )
1064
  error_log('XML Sitemap Feeds settings cleared');
 
1065
  }
1066
 
1067
  function cache_flush($new_status, $old_status)
@@ -1196,32 +1154,28 @@ class XMLSitemapFeed {
1196
  delete_option('xmlsf_version');
1197
  add_option($this->prefix.'version', XMLSF_VERSION, '', 'no');
1198
 
1199
- if ( defined('WP_DEBUG') && WP_DEBUG )
1200
  error_log('XML Sitemap Feeds upgraded from '.$old_version.' to '.XMLSF_VERSION);
1201
-
1202
  }
1203
 
1204
  public function plugins_loaded()
1205
  {
1206
  // TEXT DOMAIN
1207
- if ( is_admin() ) // text domain needed on admin only
1208
  load_plugin_textdomain('xml-sitemap-feed', false, dirname(dirname(plugin_basename( __FILE__ ))) . '/languages' );
1209
-
1210
  }
1211
 
1212
- public function activate()
1213
  {
1214
  // return if this is a multisite and we're not network activating
1215
  if ( is_multisite() ) {
1216
  if ( !is_network_admin() ) return;
1217
  }
1218
 
1219
- // is file.php included on plugin activation? if not, get_home_path()
1220
- // is not available and we need to do:
1221
- //require_once(ABSPATH . 'wp-admin/includes/file.php');
1222
- $home_path = trailingslashit( get_home_path() );
1223
-
1224
  // CHECK FOR STATIC SITEMAP FILES, DELETE IF EXIST
 
1225
  $sitemaps = $this->get_sitemaps();
1226
  foreach ( $sitemaps as $name => $pretty ) {
1227
  if ( file_exists( $home_path . $pretty ) )
@@ -1234,20 +1188,36 @@ class XMLSitemapFeed {
1234
  // UPGRADE
1235
  $version = get_option('xmlsf_version', 0);
1236
 
1237
- if ( version_compare(XMLSF_VERSION, $version, '>') )
1238
  $this->upgrade($version);
 
1239
 
1240
- // TAXONOMIES
1241
  $sitemaps = $this->get_sitemaps();
1242
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1243
  if (isset($sitemaps['sitemap-news'])) {
 
 
 
1244
  // register the taxonomies
1245
  $this->register_gn_taxonomies();
1246
 
1247
  // create terms
1248
  if ( delete_transient('xmlsf_create_genres') ) {
1249
  foreach ($this->gn_genres as $name) {
1250
- wp_insert_term( $name, 'gn-genre' );
1251
  }
1252
  }
1253
  }
@@ -1265,7 +1235,6 @@ class XMLSitemapFeed {
1265
 
1266
  // Include the admin class file
1267
  include_once( dirname(__FILE__) . '/admin.php' );
1268
-
1269
  }
1270
 
1271
  public function flush_rules($hard = false)
@@ -1368,7 +1337,7 @@ class XMLSitemapFeed {
1368
  add_filter('rt_nginx_helper_purge_urls', array($this, 'nginx_helper_purge_urls'), 10, 2);
1369
 
1370
  // ACTIVATION
1371
- register_activation_hook( XMLSF_PLUGIN_BASENAME, array($this, 'activate') );
1372
 
1373
  // DE-ACTIVATION
1374
  register_deactivation_hook( XMLSF_PLUGIN_BASENAME, array($this, 'flush_rules') );
18
  // Database options prefix
19
  private $prefix = 'xmlsf_';
20
 
21
+ // Timezone
22
+ private $timezone = null;
23
+
24
  // Flushed flag
25
  private $yes_mother = false;
26
 
153
 
154
  // robots
155
  $this->defaults['robots'] = "";
 
 
156
 
157
  // additional urls
158
  $this->defaults['urls'] = array();
188
  * QUERY FUNCTIONS
189
  */
190
 
191
+ protected function timezone()
192
+ {
193
+ $gmt = date_default_timezone_set('UTC');
194
+ if ( $this->timezone === null ) {
195
+ $this->timezone = $gmt ? 'gmt' : 'blog';
196
+ }
197
+ return $this->timezone;
198
+ }
199
+
200
+ protected function defaults($key = false)
201
  {
202
  if (empty($this->defaults))
203
  $this->set_defaults();
232
  return (!empty($return)) ? (array)$return : array();
233
  }
234
 
235
+ protected function disabled_post_types()
236
  {
237
  return $this->disabled_post_types;
 
238
  }
239
 
240
+ protected function disabled_taxonomies()
241
  {
242
  return $this->disabled_taxonomies;
 
243
  }
244
 
245
  public function get_post_types()
293
 
294
  public function get_urls()
295
  {
296
+ $urls = $this->get_option('urls');
 
297
  // make sure it's an array we are returning
298
+ $return = ( !is_array($urls) ) ? explode( "\n", $urls ) : $urls;
299
+ return apply_filters( 'xmlsf_get_urls', $return );
 
 
 
 
 
 
300
  }
301
 
302
  public function get_domains()
375
  if ( !empty($blogpage) ) {
376
  global $polylang;
377
  if ( isset($polylang) )
378
+ $this->blogpage = $polylang->model->get_translations('post', $blogpage);
379
  else
380
  $this->blogpage = array($blogpage);
381
  } else {
634
  if ( $post_type == 'page' && $id = get_option('page_on_front') ) {
635
  global $polylang;
636
  if ( isset($polylang) )
637
+ $exclude += $polylang->model->get_translations('post', $id);
638
  else
639
  $exclude[] = $id;
640
  }
776
 
777
  public function filter_request( $request )
778
  {
779
+ if ( isset($request['feed']) && strpos($request['feed'],'sitemap') === 0 ) {
780
 
781
+ if ( $request['feed'] === 'sitemap-news' ) {
782
+ // determine up news post type
 
 
 
 
 
 
 
 
783
  $options = $this->get_option('news_tags');
784
+ if ( isset($options['post_type']) && !empty($options['post_type']) ) {
785
+ $news_post_type = $options['post_type'];
786
+ } else {
787
+ $defaults = $this->defaults('news_tags');
788
+ $news_post_type = $defaults['post_type'];
789
+ }
790
 
791
  // disable caching
792
  define('DONOTCACHEPAGE', true);
793
  define('DONOTCACHEDB', true);
794
 
 
 
 
795
  // set up query filters
796
+ $zone = $this->timezone();
 
 
 
 
 
 
 
797
  if ( get_lastdate($zone, $news_post_type) > date('Y-m-d H:i:s', strtotime('-48 hours')) ) {
798
  add_filter('post_limits', array($this, 'filter_news_limits'));
799
+ add_filter('posts_where', array($this, 'filter_news_where'));
800
  } else {
801
  add_filter('post_limits', array($this, 'filter_no_news_limits'));
802
  }
815
  return $request;
816
  }
817
 
818
+ if ( strpos($request['feed'],'sitemap-posttype') === 0 ) {
 
 
 
 
 
 
 
819
  foreach ( $this->get_post_types() as $post_type ) {
820
  if ( $request['feed'] == 'sitemap-posttype-'.$post_type['name'] ) {
821
+ // change default feed posts limit
 
822
  add_filter( 'post_limits', array($this, 'filter_limits') );
823
 
824
  // modify request parameters
835
  }
836
  }
837
 
838
+ if ( strpos($request['feed'],'sitemap-taxonomy') === 0 ) {
839
  foreach ( $this->get_taxonomies() as $taxonomy ) {
840
  if ( $request['feed'] == 'sitemap-taxonomy-'.$taxonomy ) {
 
 
 
841
  // modify request parameters
842
  $request['taxonomy'] = $taxonomy;
843
  $request['lang'] = '';
851
  }
852
  }
853
  }
 
 
 
 
 
 
 
 
854
  }
 
855
  return $request;
856
  }
857
 
905
  return 'LIMIT 0, 50000';
906
  }
907
 
 
 
 
 
 
 
908
  // only posts from the last 48 hours
909
  public function filter_news_where( $where = '' )
910
  {
911
+ $_gmt = ( 'gmt' === $this->timezone() ) ? '_gmt' : '';
912
+ return $where . " AND post_date" . $_gmt . " > '" . date('Y-m-d H:i:s', strtotime('-48 hours')) . "'";
 
 
 
 
913
  }
914
 
915
  // override default feed limit for GN
1017
  delete_option('xmlsf_'.$option);
1018
  }
1019
 
1020
+ if ( defined('WP_DEBUG') && WP_DEBUG ) {
1021
  error_log('XML Sitemap Feeds settings cleared');
1022
+ }
1023
  }
1024
 
1025
  function cache_flush($new_status, $old_status)
1154
  delete_option('xmlsf_version');
1155
  add_option($this->prefix.'version', XMLSF_VERSION, '', 'no');
1156
 
1157
+ if ( defined('WP_DEBUG') && WP_DEBUG ) {
1158
  error_log('XML Sitemap Feeds upgraded from '.$old_version.' to '.XMLSF_VERSION);
1159
+ }
1160
  }
1161
 
1162
  public function plugins_loaded()
1163
  {
1164
  // TEXT DOMAIN
1165
+ if ( is_admin() ) { // text domain needed on admin only
1166
  load_plugin_textdomain('xml-sitemap-feed', false, dirname(dirname(plugin_basename( __FILE__ ))) . '/languages' );
1167
+ }
1168
  }
1169
 
1170
+ public function unlink_static()
1171
  {
1172
  // return if this is a multisite and we're not network activating
1173
  if ( is_multisite() ) {
1174
  if ( !is_network_admin() ) return;
1175
  }
1176
 
 
 
 
 
 
1177
  // CHECK FOR STATIC SITEMAP FILES, DELETE IF EXIST
1178
+ $home_path = trailingslashit( get_home_path() );
1179
  $sitemaps = $this->get_sitemaps();
1180
  foreach ( $sitemaps as $name => $pretty ) {
1181
  if ( file_exists( $home_path . $pretty ) )
1188
  // UPGRADE
1189
  $version = get_option('xmlsf_version', 0);
1190
 
1191
+ if ( version_compare(XMLSF_VERSION, $version, '>') ) {
1192
  $this->upgrade($version);
1193
+ }
1194
 
 
1195
  $sitemaps = $this->get_sitemaps();
1196
 
1197
+ if (isset($sitemaps['sitemap'])) {
1198
+ // load feed templates
1199
+ add_action('do_feed_sitemap', array($this, 'load_template_index'), 10, 1);
1200
+ add_action('do_feed_sitemap-home', array($this, 'load_template_base'), 10, 1);
1201
+ add_action('do_feed_sitemap-custom', array($this, 'load_template_custom'), 10, 1);
1202
+ foreach ( $this->get_post_types() as $post_type ) {
1203
+ add_action('do_feed_sitemap-posttype-'.$post_type['name'], array($this, 'load_template'), 10, 1);
1204
+ }
1205
+ foreach ( $this->get_taxonomies() as $taxonomy ) {
1206
+ add_action('do_feed_sitemap-taxonomy-'.$taxonomy, array($this, 'load_template_taxonomy'), 10, 1);
1207
+ }
1208
+ }
1209
+
1210
  if (isset($sitemaps['sitemap-news'])) {
1211
+ // load feed template
1212
+ add_action('do_feed_sitemap-news', array($this, 'load_template_news'), 10, 1);
1213
+
1214
  // register the taxonomies
1215
  $this->register_gn_taxonomies();
1216
 
1217
  // create terms
1218
  if ( delete_transient('xmlsf_create_genres') ) {
1219
  foreach ($this->gn_genres as $name) {
1220
+ wp_insert_term( $name, 'gn-genre' );
1221
  }
1222
  }
1223
  }
1235
 
1236
  // Include the admin class file
1237
  include_once( dirname(__FILE__) . '/admin.php' );
 
1238
  }
1239
 
1240
  public function flush_rules($hard = false)
1337
  add_filter('rt_nginx_helper_purge_urls', array($this, 'nginx_helper_purge_urls'), 10, 2);
1338
 
1339
  // ACTIVATION
1340
+ register_activation_hook( XMLSF_PLUGIN_BASENAME, array($this, 'unlink_static') );
1341
 
1342
  // DE-ACTIVATION
1343
  register_deactivation_hook( XMLSF_PLUGIN_BASENAME, array($this, 'flush_rules') );
languages/xml-sitemap-feed-nl_NL.mo CHANGED
Binary file
languages/xml-sitemap-feed-nl_NL.po CHANGED
@@ -3,7 +3,7 @@ msgstr ""
3
  "Project-Id-Version: XML Sitemap and Google News feeds/4.4\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2016-04-06 23:43+0200\n"
6
- "PO-Revision-Date: 2016-04-06 23:43+0200\n"
7
  "Last-Translator: RavanH <ravanhagen@gmail.com>\n"
8
  "Language-Team: RavanH <ravanhagen@gmail.com>\n"
9
  "Language: nl_NL\n"
@@ -429,9 +429,9 @@ msgid ""
429
  "categories, select them here. If no categories are selected, posts of all "
430
  "categories will be included in your News Sitemap."
431
  msgstr ""
432
- "Als je berichten in je News Sitemap wil beperken tot bepaalde categorieën, "
433
  "selecteer die hier. Als er geen categorieën geselecteerd zijn, worden "
434
- "artikelen uit alle categorieën in de News Sitemap bijgesloten."
435
 
436
  #: ../includes/admin.php:569 ../includes/admin.php:649
437
  msgid "Use the Ctrl/Cmd key plus click to select more than one or to deselect."
3
  "Project-Id-Version: XML Sitemap and Google News feeds/4.4\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2016-04-06 23:43+0200\n"
6
+ "PO-Revision-Date: 2016-04-12 01:37+0200\n"
7
  "Last-Translator: RavanH <ravanhagen@gmail.com>\n"
8
  "Language-Team: RavanH <ravanhagen@gmail.com>\n"
9
  "Language: nl_NL\n"
429
  "categories, select them here. If no categories are selected, posts of all "
430
  "categories will be included in your News Sitemap."
431
  msgstr ""
432
+ "Als je berichten in je Nieuws Sitemap wil beperken tot bepaalde categorieën, "
433
  "selecteer die hier. Als er geen categorieën geselecteerd zijn, worden "
434
+ "artikelen uit alle categorieën in de Nieuws Sitemap bijgesloten."
435
 
436
  #: ../includes/admin.php:569 ../includes/admin.php:649
437
  msgid "Use the Ctrl/Cmd key plus click to select more than one or to deselect."
readme.txt CHANGED
@@ -50,7 +50,7 @@ Please read the FAQ's for info on how to get your articles listed on Google News
50
  * Configure <access>, <genres> and <keywords> tags both globally and post by post
51
  * Pings Google on new publications.
52
 
53
- ** More **
54
 
55
  * Compatible with multi-lingual sites using **Polylang** to allow all languages to be indexed equally.
56
  * 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 accross your sites pages.
@@ -62,6 +62,7 @@ Please read the FAQ's for info on how to get your articles listed on Google News
62
  - **French** * R.A. van Hagen http://status301.net (version 4.2) (improved translation or suggestions needed!)
63
  - **Indonesian** * Nasrulhaq Muiz http://al-badar.net/ (version 4.2)
64
  - **Italian** * Raffaello Tesi http://www.raffaellotesi.com (version 4.3.2)
 
65
  - **Serbian** * WPdiscounts http://wpdiscounts.com/ (version 4.1)
66
  - **Spanish** * Andrew Kurtis - WebHostingHub Support http://www.webhostinghub.com/ (version 4.3.2)
67
  - **Ukrainian** * Cmd Software http://www.cmd-soft.com/ (version 4.0)
@@ -293,15 +294,19 @@ Thanks for sharing your translation :)
293
 
294
  == Upgrade Notice ==
295
 
296
- = 4.6.2 =
297
- New filter xmlsf_get_urls, more code cleanup and Polylang compat bugfix.
298
 
299
  == Changelog ==
300
 
 
 
 
 
301
  = 4.6.2 =
302
- * NEW: filter xmlsf_get_urls
303
  * More cleanup
304
- * FIX: broken Polylang compatibility reported by @zesseb
305
 
306
  = 4.6.1 =
307
  * Code cleanup
50
  * Configure <access>, <genres> and <keywords> tags both globally and post by post
51
  * Pings Google on new publications.
52
 
53
+ **More**
54
 
55
  * Compatible with multi-lingual sites using **Polylang** to allow all languages to be indexed equally.
56
  * 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 accross your sites pages.
62
  - **French** * R.A. van Hagen http://status301.net (version 4.2) (improved translation or suggestions needed!)
63
  - **Indonesian** * Nasrulhaq Muiz http://al-badar.net/ (version 4.2)
64
  - **Italian** * Raffaello Tesi http://www.raffaellotesi.com (version 4.3.2)
65
+ - **Japanese** * gblsm https://profiles.wordpress.org/gblsm/ (version 4.6)
66
  - **Serbian** * WPdiscounts http://wpdiscounts.com/ (version 4.1)
67
  - **Spanish** * Andrew Kurtis - WebHostingHub Support http://www.webhostinghub.com/ (version 4.3.2)
68
  - **Ukrainian** * Cmd Software http://www.cmd-soft.com/ (version 4.0)
294
 
295
  == Upgrade Notice ==
296
 
297
+ = 4.6.3 =
298
+ New filter xmlsf_custom_sitemaps, custom urls bugfix.
299
 
300
  == Changelog ==
301
 
302
+ = 4.6.3 =
303
+ * NEW: filter xmlsf_custom_sitemaps
304
+ * BUGFIX: empty custom urls sitemap
305
+
306
  = 4.6.2 =
307
+ * NEW: filter xmlsf_custom_urls
308
  * More cleanup
309
+ * BUGFIX: broken Polylang compatibility reported by @zesseb
310
 
311
  = 4.6.1 =
312
  * Code cleanup
xml-sitemap.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: XML Sitemap & Google News feeds
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&item_number=4%2e0&no_shipping=0&tax=0&bn=PP%2dDonationsBF&charset=UTF%2d8&lc=us">tip</a></strong> for continued development and support. Thanks :)
6
  Text Domain: xml-sitemap-feed
7
- Version: 4.6.1
8
  Author: RavanH
9
  Author URI: http://status301.net/
10
  */
@@ -32,7 +32,8 @@ Author URI: http://status301.net/
32
  * xmlsf_allowed_domain -> Filters the response when checking the url against allowed domains.
33
  * Can be true or false.
34
  * the_title_xmlsitemap -> Filters the Google News publication name, title and keywords
35
- * and Image title and caption tags
 
36
  *
37
  * ACTIONS
38
  * xmlsf_news_tags_after -> Fired inside the Google News Sitemap loop at the end of the 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&item_number=4%2e0&no_shipping=0&tax=0&bn=PP%2dDonationsBF&charset=UTF%2d8&lc=us">tip</a></strong> for continued development and support. Thanks :)
6
  Text Domain: xml-sitemap-feed
7
+ Version: 4.6.2
8
  Author: RavanH
9
  Author URI: http://status301.net/
10
  */
32
  * xmlsf_allowed_domain -> Filters the response when checking the url against allowed domains.
33
  * Can be true or false.
34
  * the_title_xmlsitemap -> Filters the Google News publication name, title and keywords
35
+ * plus the Image title and caption tags
36
+ * xmlsf_get_urls -> Filters the urls array
37
  *
38
  * ACTIONS
39
  * xmlsf_news_tags_after -> Fired inside the Google News Sitemap loop at the end of the news