Platinum SEO Pack - Version 2.1.3

Version Description

  • 2020-06-12 - Integrated the latest WordPress sitemap files.
Download this release

Release Info

Developer Rajesh Babu
Plugin Icon 128x128 Platinum SEO Pack
Version 2.1.3
Comparing to
See all releases

Code changes from version 2.1.2 to 2.1.3

Changelog.txt CHANGED
@@ -1,3 +1,6 @@
 
 
 
1
  = 2.1.2 =
2
  * 2020-06-01 - Sitemap has been further enhanced with the latest WordPress sitemap files. Also a few styling changes have been implemented to the sitemap rendered by the plugin. A few other cosmetic changes have been done to Help text wordings in a few files.
3
 
1
+ = 2.1.3 =
2
+ * 2020-06-12 - Integrated the latest WordPress sitemap files.
3
+
4
  = 2.1.2 =
5
  * 2020-06-01 - Sitemap has been further enhanced with the latest WordPress sitemap files. Also a few styling changes have been implemented to the sitemap rendered by the plugin. A few other cosmetic changes have been done to Help text wordings in a few files.
6
 
platinum-seo-pack.php CHANGED
@@ -4,7 +4,7 @@
4
  Plugin Name: Platinum SEO Pack
5
  Plugin URI: https://techblissonline.com/platinum-wordpress-seo-plugin/
6
  Description: Complete SEO and Social optimization solution for your Wordpress blog/site. It is Simple, Uncomplicated and User friendly with several useful features.
7
- Version: 2.1.2
8
  Author: Techblissonline.com (Rajesh)
9
  Author URI: https://techblissonline.com/
10
  Text Domain: platinum-seo-pack
4
  Plugin Name: Platinum SEO Pack
5
  Plugin URI: https://techblissonline.com/platinum-wordpress-seo-plugin/
6
  Description: Complete SEO and Social optimization solution for your Wordpress blog/site. It is Simple, Uncomplicated and User friendly with several useful features.
7
+ Version: 2.1.3
8
  Author: Techblissonline.com (Rajesh)
9
  Author URI: https://techblissonline.com/
10
  Text Domain: platinum-seo-pack
psp-include/settings/psp_advanced_metabox_renderer.php CHANGED
@@ -81,7 +81,7 @@ Author URI: https://techblissonline.com/
81
  <?php if ( isset($psp_seo_meta['nositemap']) && $psp_seo_meta['nositemap']) { $nositemap_checked = ' checked="checked" '; } else { $nositemap_checked = ""; }
82
  echo "<div class='psp-bs'><input ".esc_attr($nositemap_checked)." id='psp_seo_meta[nositemap]' name='psp_seo_meta[nositemap]' type='checkbox' data-toggle='toggle' data-onstyle='warning' /></div>";
83
  ?>
84
- <p class="description"><?php esc_html_e('Switching this ON Tells sitemap generator to not include this page in the sitemap.', 'platinum-seo-pack'); ?></p>
85
  </td>
86
  </tr>
87
  <tr class="form-field">
81
  <?php if ( isset($psp_seo_meta['nositemap']) && $psp_seo_meta['nositemap']) { $nositemap_checked = ' checked="checked" '; } else { $nositemap_checked = ""; }
82
  echo "<div class='psp-bs'><input ".esc_attr($nositemap_checked)." id='psp_seo_meta[nositemap]' name='psp_seo_meta[nositemap]' type='checkbox' data-toggle='toggle' data-onstyle='warning' /></div>";
83
  ?>
84
+ <p class="description"><?php esc_html_e('Switching this ON tells sitemap generator to not include this page in the sitemap. All NoIndex Pages are excluded from the Platinum SEO WordPress sitemap by default and you need not have to enable this again.', 'platinum-seo-pack'); ?></p>
85
  </td>
86
  </tr>
87
  <tr class="form-field">
psp-include/sitemap/inc/class-wp-sitemaps-index.php CHANGED
@@ -32,7 +32,7 @@ class WP_Sitemaps_Index {
32
  *
33
  * @param WP_Sitemaps_Registry $registry Sitemap provider registry.
34
  */
35
- public function __construct( $registry ) {
36
  $this->registry = $registry;
37
  }
38
 
32
  *
33
  * @param WP_Sitemaps_Registry $registry Sitemap provider registry.
34
  */
35
+ public function __construct( WP_Sitemaps_Registry $registry ) {
36
  $this->registry = $registry;
37
  }
38
 
psp-include/sitemap/inc/class-wp-sitemaps-provider.php CHANGED
@@ -108,10 +108,24 @@ abstract class WP_Sitemaps_Provider {
108
 
109
  foreach ( $sitemap_types as $type ) {
110
  for ( $page = 1; $page <= $type['pages']; $page ++ ) {
111
- $loc = $this->get_sitemap_url( $type['name'], $page );
112
- $sitemaps[] = array(
113
- 'loc' => $loc,
114
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
115
  }
116
  }
117
 
108
 
109
  foreach ( $sitemap_types as $type ) {
110
  for ( $page = 1; $page <= $type['pages']; $page ++ ) {
111
+ $sitemap_entry = array(
112
+ 'loc' => $this->get_sitemap_url( $type['name'], $page ),
 
113
  );
114
+
115
+ /**
116
+ * Filters the sitemap entry for the sitemap index.
117
+ *
118
+ * @since 5.5.0
119
+ *
120
+ * @param array $sitemap_entry Sitemap entry for the post.
121
+ * @param string $object_type Object empty name.
122
+ * @param string $object_subtype Object subtype name.
123
+ * Empty string if the object type does not support subtypes.
124
+ * @param string $page Page of results.
125
+ */
126
+ $sitemap_entry = apply_filters( 'wp_sitemaps_index_entry', $sitemap_entry, $this->object_type, $type['name'], $page );
127
+
128
+ $sitemaps[] = $sitemap_entry;
129
  }
130
  }
131
 
psp-include/sitemap/inc/class-wp-sitemaps-registry.php CHANGED
@@ -33,15 +33,11 @@ class WP_Sitemaps_Registry {
33
  * @param WP_Sitemaps_Provider $provider Instance of a WP_Sitemaps_Provider.
34
  * @return bool True if the sitemap was added, false if it is already registered.
35
  */
36
- public function add_sitemap( $name, $provider ) {
37
  if ( isset( $this->sitemaps[ $name ] ) ) {
38
  return false;
39
  }
40
 
41
- if ( ! $provider instanceof WP_Sitemaps_Provider ) {
42
- return false;
43
- }
44
-
45
  $this->sitemaps[ $name ] = $provider;
46
 
47
  return true;
33
  * @param WP_Sitemaps_Provider $provider Instance of a WP_Sitemaps_Provider.
34
  * @return bool True if the sitemap was added, false if it is already registered.
35
  */
36
+ public function add_sitemap( $name, WP_Sitemaps_Provider $provider ) {
37
  if ( isset( $this->sitemaps[ $name ] ) ) {
38
  return false;
39
  }
40
 
 
 
 
 
41
  $this->sitemaps[ $name ] = $provider;
42
 
43
  return true;
psp-include/sitemap/inc/class-wp-sitemaps-renderer.php CHANGED
@@ -120,13 +120,18 @@ class WP_Sitemaps_Renderer {
120
  header( 'Content-type: application/xml; charset=UTF-8' );
121
 
122
  $this->check_for_simple_xml_availability();
123
-
124
- $index_xml = $this->get_sitemap_index_xml( $sitemaps );
125
 
126
  if ( ! empty( $index_xml ) ) {
127
  // All output is escaped within get_sitemap_index_xml().
128
  // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
129
- echo $index_xml;
 
 
 
 
 
130
  }
131
  }
132
 
@@ -139,6 +144,14 @@ class WP_Sitemaps_Renderer {
139
  * @return string|false A well-formed XML string for a sitemap index. False on error.
140
  */
141
  public function get_sitemap_index_xml( $sitemaps ) {
 
 
 
 
 
 
 
 
142
  $sitemap_index = new SimpleXMLElement(
143
  sprintf(
144
  '%1$s%2$s%3$s',
@@ -150,7 +163,25 @@ class WP_Sitemaps_Renderer {
150
 
151
  foreach ( $sitemaps as $entry ) {
152
  $sitemap = $sitemap_index->addChild( 'sitemap' );
153
- $sitemap->addChild( 'loc', esc_url( $entry['loc'] ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
154
  }
155
 
156
  return $sitemap_index->asXML();
@@ -161,20 +192,14 @@ class WP_Sitemaps_Renderer {
161
  *
162
  * @since 5.5.0
163
  *
164
- * @param array $url_list A list of URLs for a sitemap.
165
  */
166
  public function render_sitemap( $url_list, $object_type, $object_subtype ) {
167
  header( 'Content-type: application/xml; charset=UTF-8' );
168
 
169
  $this->check_for_simple_xml_availability();
170
 
171
- $sitemap_xml = apply_filters( "wp_sitemaps_get_sitemap_xml", $url_list, $object_type, $object_subtype );
172
-
173
- if ( empty( $sitemap_xml ) ) {
174
-
175
- $sitemap_xml = $this->get_sitemap_xml( $url_list );
176
-
177
- }
178
 
179
  if ( ! empty( $sitemap_xml ) ) {
180
  // All output is escaped within get_sitemap_xml().
@@ -196,7 +221,16 @@ class WP_Sitemaps_Renderer {
196
  * @param array $url_list Array of URLs for a sitemap.
197
  * @return string|false A well-formed XML string for a sitemap index. False on error.
198
  */
199
- public function get_sitemap_xml( $url_list ) {
 
 
 
 
 
 
 
 
 
200
  $urlset = new SimpleXMLElement(
201
  sprintf(
202
  '%1$s%2$s%3$s',
@@ -209,12 +243,22 @@ class WP_Sitemaps_Renderer {
209
  foreach ( $url_list as $url_item ) {
210
  $url = $urlset->addChild( 'url' );
211
 
212
- // Add each attribute as a child node to the URL entry.
213
- foreach ( $url_item as $attr => $value ) {
214
- if ( 'url' === $attr ) {
215
- $url->addChild( $attr, esc_url( $value ) );
 
 
216
  } else {
217
- $url->addChild( $attr, esc_attr( $value ) );
 
 
 
 
 
 
 
 
218
  }
219
  }
220
  }
@@ -238,11 +282,11 @@ class WP_Sitemaps_Renderer {
238
 
239
  wp_die(
240
  sprintf(
241
- /* translators: %s: SimpleXML */
242
- __( 'Could not generate XML sitemap due to missing %s extension', 'core-sitemaps' ),
243
  'SimpleXML'
244
  ),
245
- __( 'WordPress &rsaquo; Error', 'core-sitemaps' ),
246
  array(
247
  'response' => 501, // "Not implemented".
248
  )
120
  header( 'Content-type: application/xml; charset=UTF-8' );
121
 
122
  $this->check_for_simple_xml_availability();
123
+
124
+ $index_xml = $this->get_sitemap_index_xml( $sitemaps );
125
 
126
  if ( ! empty( $index_xml ) ) {
127
  // All output is escaped within get_sitemap_index_xml().
128
  // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
129
+ $dom = new DOMDocument;
130
+ $dom->preserveWhiteSpace = false;
131
+ $dom->formatOutput = true;
132
+ $dom->loadXML($index_xml);
133
+ echo $dom->saveXML();
134
+ //echo $index_xml;
135
  }
136
  }
137
 
144
  * @return string|false A well-formed XML string for a sitemap index. False on error.
145
  */
146
  public function get_sitemap_index_xml( $sitemaps ) {
147
+ $index_xml = "";
148
+ $index_xml = apply_filters( "wp_sitemaps_get_sitemap_index_xml", $index_xml, $sitemaps );
149
+
150
+ if (!empty($index_xml) ) {
151
+
152
+ return $index_xml;
153
+ }
154
+
155
  $sitemap_index = new SimpleXMLElement(
156
  sprintf(
157
  '%1$s%2$s%3$s',
163
 
164
  foreach ( $sitemaps as $entry ) {
165
  $sitemap = $sitemap_index->addChild( 'sitemap' );
166
+
167
+ // Add each element as a child node to the <sitemap> entry.
168
+ foreach ( $entry as $name => $value ) {
169
+ if ( 'loc' === $name ) {
170
+ $sitemap->addChild( $name, esc_url( $value ) );
171
+ } elseif ( 'lastmod' === $name ) {
172
+ $sitemap->addChild( $name, esc_xml( $value ) );
173
+ } else {
174
+ _doing_it_wrong(
175
+ __METHOD__,
176
+ /* translators: %s: list of element names */
177
+ sprintf(
178
+ __( 'Fields other than %s are not currently supported for the sitemap index.', 'core-sitemaps' ),
179
+ implode( ',', array( 'loc', 'lastmod' ) )
180
+ ),
181
+ '5.5.0'
182
+ );
183
+ }
184
+ }
185
  }
186
 
187
  return $sitemap_index->asXML();
192
  *
193
  * @since 5.5.0
194
  *
195
+ * @param array $url_list Array of URLs for a sitemap.
196
  */
197
  public function render_sitemap( $url_list, $object_type, $object_subtype ) {
198
  header( 'Content-type: application/xml; charset=UTF-8' );
199
 
200
  $this->check_for_simple_xml_availability();
201
 
202
+ $sitemap_xml = $this->get_sitemap_xml( $url_list, $object_type, $object_subtype );
 
 
 
 
 
 
203
 
204
  if ( ! empty( $sitemap_xml ) ) {
205
  // All output is escaped within get_sitemap_xml().
221
  * @param array $url_list Array of URLs for a sitemap.
222
  * @return string|false A well-formed XML string for a sitemap index. False on error.
223
  */
224
+ public function get_sitemap_xml( $url_list, $object_type, $object_subtype ) {
225
+
226
+ $sitemap_xml = "";
227
+ $sitemap_xml = apply_filters( "wp_sitemaps_get_sitemap_xml", $sitemap_xml, $url_list, $object_type, $object_subtype );
228
+
229
+ if ( !empty($sitemap_xml) ) {
230
+
231
+ return $sitemap_xml;
232
+ }
233
+
234
  $urlset = new SimpleXMLElement(
235
  sprintf(
236
  '%1$s%2$s%3$s',
243
  foreach ( $url_list as $url_item ) {
244
  $url = $urlset->addChild( 'url' );
245
 
246
+ // Add each element as a child node to the <url> entry.
247
+ foreach ( $url_item as $name => $value ) {
248
+ if ( 'loc' === $name ) {
249
+ $url->addChild( $name, esc_url( $value ) );
250
+ } elseif ( in_array( $name, array( 'lastmod', 'changefreq', 'priority' ), true ) ) {
251
+ $url->addChild( $name, esc_xml( $value ) );
252
  } else {
253
+ _doing_it_wrong(
254
+ __METHOD__,
255
+ /* translators: %s: list of element names */
256
+ sprintf(
257
+ __( 'Fields other than %s are not currently supported for sitemaps.', 'core-sitemaps' ),
258
+ implode( ',', array( 'loc', 'lastmod', 'changefreq', 'priority' ) )
259
+ ),
260
+ '5.5.0'
261
+ );
262
  }
263
  }
264
  }
282
 
283
  wp_die(
284
  sprintf(
285
+ /* translators: %s: SimpleXML */
286
+ esc_xml( __( 'Could not generate XML sitemap due to missing %s extension', 'core-sitemaps' ) ),
287
  'SimpleXML'
288
  ),
289
+ esc_xml( __( 'WordPress &rsaquo; Error', 'core-sitemaps' ) ),
290
  array(
291
  'response' => 501, // "Not implemented".
292
  )
psp-include/sitemap/inc/class-wp-sitemaps-stylesheet.php CHANGED
@@ -42,72 +42,98 @@ class WP_Sitemaps_Stylesheet {
42
  * @since 5.5.0
43
  */
44
  public function get_sitemap_stylesheet() {
45
- $css = $this->get_stylesheet_css();
46
- $title = esc_html__( 'XML Sitemap', 'core-sitemaps' );
47
- $description = sprintf(
48
- /* translators: %s: URL to sitemaps documentation. */
49
- __( 'This XML Sitemap is generated by WordPress to make your content more visible for search engines. Learn more about XML sitemaps on <a href="%s">sitemaps.org</a>.', 'core-sitemaps' ),
50
- __( 'https://www.sitemaps.org/', 'core-sitemaps' )
 
51
  );
52
- $text = sprintf(
 
53
  /* translators: %s: number of URLs. */
54
- __( 'Number of URLs in this XML Sitemap: %s.', 'core-sitemaps' ),
55
- '<xsl:value-of select="count(sitemap:urlset/sitemap:url)"/>'
56
  );
57
 
58
- $url = esc_html__( 'URL', 'core-sitemaps' );
 
 
 
 
59
 
60
  $xsl_content = <<<XSL
61
  <?xml version="1.0" encoding="UTF-8"?>
62
- <xsl:stylesheet version="2.0"
63
- xmlns:html="http://www.w3.org/TR/REC-html40"
64
- xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
65
- xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9"
66
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
67
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
68
- <xsl:template match="/">
69
- <html xmlns="http://www.w3.org/1999/xhtml">
70
- <head>
71
- <title>$title</title>
72
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
73
- <style type="text/css">
74
- $css
75
- </style>
76
- </head>
77
- <body>
78
- <div id="sitemap__header">
79
- <h1>$title</h1>
80
- <p>$description</p>
81
- </div>
82
- <div id="sitemap__content">
83
- <p class="text">$text</p>
84
- <table id="sitemap__table">
85
- <thead>
 
 
 
 
 
 
 
 
 
86
  <tr>
87
- <th>$url</th>
 
 
 
 
 
 
 
 
 
88
  </tr>
89
- </thead>
90
- <tbody>
91
  <xsl:for-each select="sitemap:urlset/sitemap:url">
92
  <tr>
93
- <td>
94
- <xsl:variable name="itemURL">
95
- <xsl:value-of select="sitemap:loc"/>
96
- </xsl:variable>
97
- <a href="{\$itemURL}">
98
- <xsl:value-of select="sitemap:loc"/>
99
- </a>
100
- </td>
 
 
101
  </tr>
102
  </xsl:for-each>
103
- </tbody>
104
- </table>
105
-
106
- </div>
107
- </body>
108
- </html>
109
- </xsl:template>
110
- </xsl:stylesheet>\n
111
  XSL;
112
 
113
  /**
@@ -126,72 +152,82 @@ XSL;
126
  * @since 5.5.0
127
  */
128
  public function get_sitemap_index_stylesheet() {
129
- $css = $this->get_stylesheet_css();
130
- $title = esc_html__( 'XML Sitemap', 'core-sitemaps' );
131
- $description = sprintf(
132
- /* translators: %s: URL to sitemaps documentation. */
133
- __( 'This XML Sitemap is generated by WordPress to make your content more visible for search engines. Learn more about XML sitemaps on <a href="%s">sitemaps.org</a>.', 'core-sitemaps' ),
134
- __( 'https://www.sitemaps.org/', 'core-sitemaps' )
 
135
  );
136
- $text = sprintf(
 
137
  /* translators: %s: number of URLs. */
138
- __( 'This XML Sitemap contains %s URLs.', 'core-sitemaps' ),
139
- '<xsl:value-of select="count(sitemap:sitemapindex/sitemap:sitemap)"/>'
140
  );
141
 
142
- $url = esc_html__( 'URL', 'core-sitemaps' );
 
 
143
 
144
  $xsl_content = <<<XSL
145
  <?xml version="1.0" encoding="UTF-8"?>
146
- <xsl:stylesheet version="2.0"
147
- xmlns:html="http://www.w3.org/TR/REC-html40"
148
- xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
149
- xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9"
150
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
151
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
152
- <xsl:template match="/">
153
- <html xmlns="http://www.w3.org/1999/xhtml">
154
- <head>
155
- <title>$title</title>
156
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
157
- <style type="text/css">
158
- $css
159
- </style>
160
- </head>
161
- <body>
162
- <div id="sitemap__header">
163
- <h1>$title</h1>
164
- <p>$description</p>
165
- </div>
166
- <div id="sitemap__content">
167
- <p class="text">$text</p>
168
- <table id="sitemap__table">
169
- <thead>
 
 
 
 
 
 
 
170
  <tr>
171
- <th>$url</th>
 
 
 
172
  </tr>
173
- </thead>
174
- <tbody>
175
  <xsl:for-each select="sitemap:sitemapindex/sitemap:sitemap">
176
  <tr>
177
- <td>
178
- <xsl:variable name="itemURL">
179
- <xsl:value-of select="sitemap:loc"/>
180
- </xsl:variable>
181
- <a href="{\$itemURL}">
182
- <xsl:value-of select="sitemap:loc"/>
183
- </a>
184
- </td>
185
  </tr>
186
  </xsl:for-each>
187
- </tbody>
188
- </table>
189
-
190
- </div>
191
- </body>
192
- </html>
193
- </xsl:template>
194
- </xsl:stylesheet>\n
195
  XSL;
196
 
197
  /**
@@ -201,7 +237,7 @@ XSL;
201
  *
202
  * @param string $xsl Full content for the xml stylesheet.
203
  */
204
- return apply_filters( 'wp_sitemaps_index_stylesheet_content', $xsl_content );
205
  }
206
 
207
  /**
42
  * @since 5.5.0
43
  */
44
  public function get_sitemap_stylesheet() {
45
+ $css = $this->get_stylesheet_css();
46
+ $title = esc_xml( __( 'XML Sitemap', 'core-sitemaps' ) );
47
+ $description = esc_xml( __( 'This XML Sitemap is generated by WordPress to make your content more visible for search engines.', 'core-sitemaps' ) );
48
+ $learn_more = sprintf(
49
+ '<a href="%s">%s</a>',
50
+ esc_url( __( 'https://www.sitemaps.org/', 'core-sitemaps' ) ),
51
+ esc_xml( __( 'Learn more about XML sitemaps.', 'core-sitemaps' ) )
52
  );
53
+
54
+ $text = sprintf(
55
  /* translators: %s: number of URLs. */
56
+ esc_xml( __( 'Number of URLs in this XML Sitemap: %s.', 'core-sitemaps' ) ),
57
+ '<xsl:value-of select="count( sitemap:urlset/sitemap:url )" />'
58
  );
59
 
60
+ $lang = get_language_attributes( 'html' );
61
+ $url = esc_xml( __( 'URL', 'core-sitemaps' ) );
62
+ $lastmod = esc_xml( __( 'Last Modified', 'core-sitemaps' ) );
63
+ $changefreq = esc_xml( __( 'Change Frequency', 'core-sitemaps' ) );
64
+ $priority = esc_xml( __( 'Priority', 'core-sitemaps' ) );
65
 
66
  $xsl_content = <<<XSL
67
  <?xml version="1.0" encoding="UTF-8"?>
68
+ <xsl:stylesheet
69
+ version="1.0"
70
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
71
+ xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9"
72
+ exclude-result-prefixes="sitemap"
73
+ >
74
+
75
+ <xsl:output method="html" encoding="UTF-8" indent="yes"/>
76
+
77
+ <!--
78
+ Set variables for whether lastmod, changefreq or priority occur for any url in the sitemap.
79
+ We do this up front because it can be expensive in a large sitemap.
80
+ -->
81
+ <xsl:variable name="has-lastmod" select="count( /sitemap:urlset/sitemap:url/sitemap:lastmod )" />
82
+ <xsl:variable name="has-changefreq" select="count( /sitemap:urlset/sitemap:url/sitemap:changefreq )" />
83
+ <xsl:variable name="has-priority" select="count( /sitemap:urlset/sitemap:url/sitemap:priority )" />
84
+
85
+ <xsl:template match="/">
86
+ <html {$lang}>
87
+ <head>
88
+ <title>{$title}</title>
89
+ <style>{$css}</style>
90
+ </head>
91
+ <body>
92
+ <div id="sitemap__header">
93
+ <h1>{$title}</h1>
94
+ <p>{$description}</p>
95
+ <p>{$learn_more}</p>
96
+ </div>
97
+ <div id="sitemap__content">
98
+ <p class="text">{$text}</p>
99
+ <table id="sitemap__table">
100
+ <thead>
101
  <tr>
102
+ <th class="loc">{$url}</th>
103
+ <xsl:if test="\$has-lastmod">
104
+ <th class="lastmod">{$lastmod}</th>
105
+ </xsl:if>
106
+ <xsl:if test="\$has-changefreq">
107
+ <th class="changefreq">{$changefreq}</th>
108
+ </xsl:if>
109
+ <xsl:if test="\$has-priority">
110
+ <th class="priority">{$priority}</th>
111
+ </xsl:if>
112
  </tr>
113
+ </thead>
114
+ <tbody>
115
  <xsl:for-each select="sitemap:urlset/sitemap:url">
116
  <tr>
117
+ <td class="loc"><a href="{sitemap:loc}"><xsl:value-of select="sitemap:loc" /></a></td>
118
+ <xsl:if test="\$has-lastmod">
119
+ <td class="lastmod"><xsl:value-of select="sitemap:lastmod" /></td>
120
+ </xsl:if>
121
+ <xsl:if test="\$has-changefreq">
122
+ <td class="changefreq"><xsl:value-of select="sitemap:changefreq" /></td>
123
+ </xsl:if>
124
+ <xsl:if test="\$has-priority">
125
+ <td class="priority"><xsl:value-of select="sitemap:priority" /></td>
126
+ </xsl:if>
127
  </tr>
128
  </xsl:for-each>
129
+ </tbody>
130
+ </table>
131
+ </div>
132
+ </body>
133
+ </html>
134
+ </xsl:template>
135
+ </xsl:stylesheet>
136
+
137
  XSL;
138
 
139
  /**
152
  * @since 5.5.0
153
  */
154
  public function get_sitemap_index_stylesheet() {
155
+ $css = $this->get_stylesheet_css();
156
+ $title = esc_xml( __( 'XML Sitemap', 'core-sitemaps' ) );
157
+ $description = esc_xml( __( 'This XML Sitemap is generated by WordPress to make your content more visible for search engines.', 'core-sitemaps' ) );
158
+ $learn_more = sprintf(
159
+ '<a href="%s">%s</a>',
160
+ esc_url( __( 'https://www.sitemaps.org/', 'core-sitemaps' ) ),
161
+ esc_xml( __( 'Learn more about XML sitemaps.', 'core-sitemaps' ) )
162
  );
163
+
164
+ $text = sprintf(
165
  /* translators: %s: number of URLs. */
166
+ esc_xml( __( 'Number of URLs in this XML Sitemap: %s.', 'core-sitemaps' ) ),
167
+ '<xsl:value-of select="count( sitemap:sitemapindex/sitemap:sitemap )" />'
168
  );
169
 
170
+ $lang = get_language_attributes( 'html' );
171
+ $url = esc_xml( __( 'URL', 'core-sitemaps' ) );
172
+ $lastmod = esc_xml( __( 'Last Modified', 'core-sitemaps' ) );
173
 
174
  $xsl_content = <<<XSL
175
  <?xml version="1.0" encoding="UTF-8"?>
176
+ <xsl:stylesheet
177
+ version="1.0"
178
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
179
+ xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9"
180
+ exclude-result-prefixes="sitemap"
181
+ >
182
+
183
+ <xsl:output method="html" encoding="UTF-8" indent="yes" />
184
+
185
+ <!--
186
+ Set variables for whether lastmod occurs for any sitemap in the index.
187
+ We do this up front because it can be expensive in a large sitemap.
188
+ -->
189
+ <xsl:variable name="has-lastmod" select="count( /sitemap:sitemapindex/sitemap:sitemap/sitemap:lastmod )" />
190
+
191
+ <xsl:template match="/">
192
+ <html {$lang}>
193
+ <head>
194
+ <title>{$title}</title>
195
+ <style>{$css}</style>
196
+ </head>
197
+ <body>
198
+ <div id="sitemap__header">
199
+ <h1>{$title}</h1>
200
+ <p>{$description}</p>
201
+ <p>{$learn_more}</p>
202
+ </div>
203
+ <div id="sitemap__content">
204
+ <p class="text">{$text}</p>
205
+ <table id="sitemap__table">
206
+ <thead>
207
  <tr>
208
+ <th class="loc">{$url}</th>
209
+ <xsl:if test="\$has-lastmod">
210
+ <th class="lastmod">{$lastmod}</th>
211
+ </xsl:if>
212
  </tr>
213
+ </thead>
214
+ <tbody>
215
  <xsl:for-each select="sitemap:sitemapindex/sitemap:sitemap">
216
  <tr>
217
+ <td class="loc"><a href="{sitemap:loc}"><xsl:value-of select="sitemap:loc" /></a></td>
218
+ <xsl:if test="\$has-lastmod">
219
+ <td class="lastmod"><xsl:value-of select="sitemap:lastmod" /></td>
220
+ </xsl:if>
 
 
 
 
221
  </tr>
222
  </xsl:for-each>
223
+ </tbody>
224
+ </table>
225
+ </div>
226
+ </body>
227
+ </html>
228
+ </xsl:template>
229
+ </xsl:stylesheet>
230
+
231
  XSL;
232
 
233
  /**
237
  *
238
  * @param string $xsl Full content for the xml stylesheet.
239
  */
240
+ return apply_filters( 'wp_sitemaps_stylesheet_index_content', $xsl_content );
241
  }
242
 
243
  /**
psp-include/sitemap/inc/class-wp-sitemaps.php CHANGED
@@ -83,7 +83,7 @@ class WP_Sitemaps {
83
  * @since 5.5.0
84
  *
85
  * @param array $providers {
86
- * Array of WP_Sitemap_Provider objects keyed by their name.
87
  *
88
  * @type object $posts The WP_Sitemaps_Posts object.
89
  * @type object $taxonomies The WP_Sitemaps_Taxonomies object.
@@ -180,12 +180,12 @@ class WP_Sitemaps {
180
  $sitemap = sanitize_text_field( get_query_var( 'sitemap' ) );
181
  $object_subtype = sanitize_text_field( get_query_var( 'sitemap-sub-type' ) );
182
  $stylesheet_type = sanitize_text_field( get_query_var( 'sitemap-stylesheet' ) );
183
- $paged = absint( get_query_var( 'paged' ) );
184
-
185
  // Bail early if this isn't a sitemap or stylesheet route.
186
  if ( ! ( $sitemap || $stylesheet_type ) ) {
187
  return;
188
- }
189
 
190
  // Render stylesheet if this is stylesheet route.
191
  if ( $stylesheet_type ) {
@@ -194,7 +194,7 @@ class WP_Sitemaps {
194
  $stylesheet->render_stylesheet( $stylesheet_type );
195
  exit;
196
  }
197
-
198
  // Render the index.
199
  if ( 'index' === $sitemap ) {
200
  $sitemap_list = $this->index->get_sitemap_list();
@@ -202,19 +202,20 @@ class WP_Sitemaps {
202
  $this->renderer->render_index( $sitemap_list );
203
  exit;
204
  }
205
-
206
  $provider = $this->registry->get_sitemap( $sitemap );
207
 
208
  if ( ! $provider ) {
209
  return;
210
  }
 
 
211
 
212
  if ( empty( $paged ) ) {
213
  $paged = 1;
214
  }
215
 
216
  $url_list = $provider->get_url_list( $paged, $object_subtype );
217
- $object_type = $provider->get_object_type();
218
 
219
  // Force a 404 and bail early if no URLs are present.
220
  if ( empty( $url_list ) ) {
83
  * @since 5.5.0
84
  *
85
  * @param array $providers {
86
+ * Array of WP_Sitemaps_Provider objects keyed by their name.
87
  *
88
  * @type object $posts The WP_Sitemaps_Posts object.
89
  * @type object $taxonomies The WP_Sitemaps_Taxonomies object.
180
  $sitemap = sanitize_text_field( get_query_var( 'sitemap' ) );
181
  $object_subtype = sanitize_text_field( get_query_var( 'sitemap-sub-type' ) );
182
  $stylesheet_type = sanitize_text_field( get_query_var( 'sitemap-stylesheet' ) );
183
+ $paged = absint( get_query_var( 'paged' ) );
184
+ $object_type = sanitize_text_field( get_query_var( 'sitemap-type' ) );
185
  // Bail early if this isn't a sitemap or stylesheet route.
186
  if ( ! ( $sitemap || $stylesheet_type ) ) {
187
  return;
188
+ }
189
 
190
  // Render stylesheet if this is stylesheet route.
191
  if ( $stylesheet_type ) {
194
  $stylesheet->render_stylesheet( $stylesheet_type );
195
  exit;
196
  }
197
+
198
  // Render the index.
199
  if ( 'index' === $sitemap ) {
200
  $sitemap_list = $this->index->get_sitemap_list();
202
  $this->renderer->render_index( $sitemap_list );
203
  exit;
204
  }
205
+
206
  $provider = $this->registry->get_sitemap( $sitemap );
207
 
208
  if ( ! $provider ) {
209
  return;
210
  }
211
+
212
+ $object_type = $provider->get_object_type();
213
 
214
  if ( empty( $paged ) ) {
215
  $paged = 1;
216
  }
217
 
218
  $url_list = $provider->get_url_list( $paged, $object_subtype );
 
219
 
220
  // Force a 404 and bail early if no URLs are present.
221
  if ( empty( $url_list ) ) {
psp-include/sitemap/inc/functions.php CHANGED
@@ -88,7 +88,7 @@ function wp_get_sitemaps() {
88
  * @param WP_Sitemaps_Provider $provider The `Sitemaps_Provider` instance implementing the sitemap.
89
  * @return bool Returns true if the sitemap was added. False on failure.
90
  */
91
- function wp_register_sitemap( $name, $provider ) {
92
  $sitemaps = wp_sitemaps_get_server();
93
 
94
  if ( ! $sitemaps ) {
@@ -117,3 +117,88 @@ function wp_sitemaps_get_max_urls( $object_type ) {
117
  */
118
  return apply_filters( 'wp_sitemaps_max_urls', WP_SITEMAPS_MAX_URLS, $object_type );
119
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  * @param WP_Sitemaps_Provider $provider The `Sitemaps_Provider` instance implementing the sitemap.
89
  * @return bool Returns true if the sitemap was added. False on failure.
90
  */
91
+ function wp_register_sitemap( $name, WP_Sitemaps_Provider $provider ) {
92
  $sitemaps = wp_sitemaps_get_server();
93
 
94
  if ( ! $sitemaps ) {
117
  */
118
  return apply_filters( 'wp_sitemaps_max_urls', WP_SITEMAPS_MAX_URLS, $object_type );
119
  }
120
+
121
+ if ( ! function_exists( 'esc_xml' ) ) :
122
+ /**
123
+ * Escaping for XML blocks.
124
+ *
125
+ * @since 5.5.0
126
+ *
127
+ * @param string $text Text to escape.
128
+ * @return string
129
+ */
130
+ function esc_xml( $text ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals
131
+ $safe_text = wp_check_invalid_utf8( $text );
132
+
133
+ $cdata_regex = '\<\!\[CDATA\[.*?\]\]\>';
134
+ $regex = <<<EOF
135
+ /
136
+ (?=.*?{$cdata_regex}) # lookahead that will match anything followed by a CDATA Section
137
+ (?<non_cdata_followed_by_cdata>(.*?)) # the "anything" matched by the lookahead
138
+ (?<cdata>({$cdata_regex})) # the CDATA Section matched by the lookahead
139
+
140
+ | # alternative
141
+
142
+ (?<non_cdata>(.*)) # non-CDATA Section
143
+ /sx
144
+ EOF;
145
+ $safe_text = (string) preg_replace_callback(
146
+ $regex,
147
+ function( $matches ) {
148
+ if ( ! $matches[0] ) {
149
+ return '';
150
+ } elseif ( ! empty( $matches['non_cdata'] ) ) {
151
+ // escape HTML entities in the non-CDATA Section.
152
+ return _esc_xml_non_cdata_section( $matches['non_cdata'] );
153
+ }
154
+
155
+ // Return the CDATA Section unchanged, escape HTML entities in the rest.
156
+ return _esc_xml_non_cdata_section( $matches['non_cdata_followed_by_cdata'] ) . $matches['cdata'];
157
+ },
158
+ $safe_text
159
+ );
160
+
161
+ /**
162
+ * Filters a string cleaned and escaped for output in XML.
163
+ *
164
+ * Text passed to esc_xml() is stripped of invalid or special characters
165
+ * before output. HTML named character references are converted to their
166
+ * equivalent code points.
167
+ *
168
+ * @since 5.5.0
169
+ *
170
+ * @param string $safe_text The text after it has been escaped.
171
+ * @param string $text The text prior to being escaped.
172
+ */
173
+ return apply_filters( 'esc_xml', $safe_text, $text ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals
174
+ }
175
+ endif;
176
+
177
+ if ( ! function_exists( '_esc_xml_non_cdata_section' ) ) :
178
+ /**
179
+ * Escaping for non-CDATA Section XML blocks.
180
+ *
181
+ * @access private
182
+ * @since 5.5.0
183
+ *
184
+ * @param string $text Text to escape.
185
+ * @return string
186
+ */
187
+ function _esc_xml_non_cdata_section( $text ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals
188
+ global $allowedentitynames;
189
+
190
+ $safe_text = _wp_specialchars( $text, ENT_QUOTES );
191
+ // Replace HTML entities with their Unicode codepoints,
192
+ // without doing the same for the 5 XML entities.
193
+ $html_only_entities = array_diff( $allowedentitynames, array( 'amp', 'lt', 'gt', 'apos', 'quot' ) );
194
+ $safe_text = (string) preg_replace_callback(
195
+ '/&(' . implode( '|', $html_only_entities ) . ');/',
196
+ function( $matches ) {
197
+ return html_entity_decode( $matches[0], ENT_HTML5 );
198
+ },
199
+ $safe_text
200
+ );
201
+
202
+ return $safe_text;
203
+ }
204
+ endif;
psp-include/sitemap/inc/providers/class-wp-sitemaps-posts.php CHANGED
@@ -38,7 +38,7 @@ class WP_Sitemaps_Posts extends WP_Sitemaps_Provider {
38
  unset( $post_types['attachment'] );
39
 
40
  /**
41
- * Filters the list of post object sub types available within the sitemap.
42
  *
43
  * @since 5.5.0
44
  *
@@ -107,9 +107,19 @@ class WP_Sitemaps_Posts extends WP_Sitemaps_Provider {
107
  */
108
  if ( 'page' === $post_type && 1 === $page_num && 'posts' === get_option( 'show_on_front' ) ) {
109
  // Extract the data needed for home URL to add to the array.
110
- $url_list[] = array(
111
  'loc' => home_url(),
112
  );
 
 
 
 
 
 
 
 
 
 
113
  }
114
 
115
  foreach ( $posts as $post ) {
@@ -127,7 +137,7 @@ class WP_Sitemaps_Posts extends WP_Sitemaps_Provider {
127
  * @param string $post_type Name of the post_type.
128
  */
129
  $sitemap_entry = apply_filters( 'wp_sitemaps_posts_entry', $sitemap_entry, $post, $post_type );
130
- $url_list[] = $sitemap_entry;
131
  }
132
 
133
  return $url_list;
38
  unset( $post_types['attachment'] );
39
 
40
  /**
41
+ * Filters the list of post object subtypes available within the sitemap.
42
  *
43
  * @since 5.5.0
44
  *
107
  */
108
  if ( 'page' === $post_type && 1 === $page_num && 'posts' === get_option( 'show_on_front' ) ) {
109
  // Extract the data needed for home URL to add to the array.
110
+ $sitemap_entry = array(
111
  'loc' => home_url(),
112
  );
113
+
114
+ /**
115
+ * Filters the sitemap entry for the home page when the 'show_on_front' option equals 'posts'.
116
+ *
117
+ * @since 5.5.0
118
+ *
119
+ * @param array $sitemap_entry Sitemap entry for the home page.
120
+ */
121
+ $sitemap_entry = apply_filters( 'wp_sitemaps_posts_show_on_front_entry', $sitemap_entry );
122
+ $url_list[] = $sitemap_entry;
123
  }
124
 
125
  foreach ( $posts as $post ) {
137
  * @param string $post_type Name of the post_type.
138
  */
139
  $sitemap_entry = apply_filters( 'wp_sitemaps_posts_entry', $sitemap_entry, $post, $post_type );
140
+ $url_list[] = $sitemap_entry;
141
  }
142
 
143
  return $url_list;
psp-include/sitemap/psp_sitemap.php CHANGED
@@ -103,7 +103,7 @@ class PspSitemap {
103
 
104
  add_filter('wp_sitemaps_taxonomies_entry', array($this, 'psp_term_entry_for_sitemap'), 10, 3);
105
 
106
- add_filter('wp_sitemaps_get_sitemap_xml', array($this, 'psp_get_sitemap_xml'), 10, 3);
107
 
108
  // Boot the sitemaps system.
109
  add_action( 'init', 'wp_sitemaps_get_server' );
@@ -452,7 +452,13 @@ class PspSitemap {
452
  * @param array $url_list A list of URLs for a sitemap.
453
  * @return string|false A well-formed XML string for a sitemap index. False on error.
454
  */
455
- public function psp_get_sitemap_xml( $url_list, $object_type, $object_subtype ) {
 
 
 
 
 
 
456
 
457
  $psp_sm_settings = $this->psp_sitemap_settings;
458
 
@@ -513,9 +519,11 @@ class PspSitemap {
513
  $url->addChild( $attr, esc_attr( $value ) );
514
  }
515
  }
516
- }
517
-
 
518
  return $urlset->asXML();
 
519
  }
520
 
521
  }
103
 
104
  add_filter('wp_sitemaps_taxonomies_entry', array($this, 'psp_term_entry_for_sitemap'), 10, 3);
105
 
106
+ add_filter('wp_sitemaps_get_sitemap_xml', array($this, 'psp_get_sitemap_xml'), 10, 4);
107
 
108
  // Boot the sitemaps system.
109
  add_action( 'init', 'wp_sitemaps_get_server' );
452
  * @param array $url_list A list of URLs for a sitemap.
453
  * @return string|false A well-formed XML string for a sitemap index. False on error.
454
  */
455
+ public function psp_get_sitemap_xml( $sitemap_xml = '', $url_list, $object_type, $object_subtype ) {
456
+
457
+ if (!$url_list) {
458
+
459
+ return $sitemap_xml;
460
+
461
+ }
462
 
463
  $psp_sm_settings = $this->psp_sitemap_settings;
464
 
519
  $url->addChild( $attr, esc_attr( $value ) );
520
  }
521
  }
522
+
523
+ }
524
+
525
  return $urlset->asXML();
526
+
527
  }
528
 
529
  }
psp-include/sitemap/psp_sitemap_settings.php CHANGED
@@ -230,7 +230,7 @@ class PspSmSettings extends PspSettings {
230
  'label_for' => 'psp_sm_posts_id',
231
  'option_name' => $psp_sm_settings_name.'[excluded_post_ids]',
232
  'option_value' => isset($psp_sm_settings['excluded_post_ids']) ? esc_attr($psp_sm_settings['excluded_post_ids']) : '',
233
- 'option_description' => esc_html__( 'Enter a comma separated list of Post IDs to be excluded from SiteMap. This can be automatically updated via Platinum SEO Meta Box for individual Posts or Pages', 'platinum-seo-pack' ),
234
  );
235
  add_settings_field( 'psp_sm_posts_id', $psp_sm_posts_field_title, array( &$this, 'psp_add_field_text' ), $this->psp_sm_settings_group, 'psp_sitemap_section', $psp_sm_posts_field);
236
 
@@ -242,7 +242,7 @@ class PspSmSettings extends PspSettings {
242
  'label_for' => 'psp_sm_terms_ids',
243
  'option_name' => $psp_sm_settings_name.'[excluded_term_ids]',
244
  'option_value' => isset($psp_sm_settings['excluded_term_ids']) ? esc_attr($psp_sm_settings['excluded_term_ids']) : '',
245
- 'option_description' => esc_html__( 'Enter a comma separated list of Term IDs to be excluded from SiteMap. This can be automatically updated via Platinum SEO Meta Box for individual Category or Taxonomy Terms', 'platinum-seo-pack' ),
246
  );
247
  add_settings_field( 'psp_sm_terms_ids', $psp_sm_terms_field_title, array( &$this, 'psp_add_field_text' ), $this->psp_sm_settings_group, 'psp_sitemap_section', $psp_sm_terms_field);
248
 
230
  'label_for' => 'psp_sm_posts_id',
231
  'option_name' => $psp_sm_settings_name.'[excluded_post_ids]',
232
  'option_value' => isset($psp_sm_settings['excluded_post_ids']) ? esc_attr($psp_sm_settings['excluded_post_ids']) : '',
233
+ 'option_description' => esc_html__( 'Enter a comma separated list of Post IDs to be excluded from SiteMap. This can be automatically updated via Platinum SEO Meta Box for individual Posts or Pages.NoIndex Pages are excluded from the sitemap by default and you need not have to enter them here again.', 'platinum-seo-pack' ),
234
  );
235
  add_settings_field( 'psp_sm_posts_id', $psp_sm_posts_field_title, array( &$this, 'psp_add_field_text' ), $this->psp_sm_settings_group, 'psp_sitemap_section', $psp_sm_posts_field);
236
 
242
  'label_for' => 'psp_sm_terms_ids',
243
  'option_name' => $psp_sm_settings_name.'[excluded_term_ids]',
244
  'option_value' => isset($psp_sm_settings['excluded_term_ids']) ? esc_attr($psp_sm_settings['excluded_term_ids']) : '',
245
+ 'option_description' => esc_html__( 'Enter a comma separated list of Term IDs to be excluded from SiteMap. This can be automatically updated via Platinum SEO Meta Box for individual Category or Taxonomy Terms. NoIndex Terms are excluded from the sitemap by default and you need not have to enter them here again.', 'platinum-seo-pack' ),
246
  );
247
  add_settings_field( 'psp_sm_terms_ids', $psp_sm_terms_field_title, array( &$this, 'psp_add_field_text' ), $this->psp_sm_settings_group, 'psp_sitemap_section', $psp_sm_terms_field);
248
 
psp-include/sitemap/sitemap-image.xsl CHANGED
@@ -64,14 +64,13 @@
64
  <body>
65
  <div id="intro">
66
  <p>
67
- This is a XML Sitemap which is supposed to be processed by search engines that follow the XML Sitemap standards like Google, Bing and other Search Engines.<br />
68
- It was generated using the <a rel="external nofollow" href="https://wordpress.org/plugins/platinum-seo-pack/">WordPress</a> SiteMap and the <strong>Platinum SEO Plugin</strong> by <a rel="external nofollow" href="https://techblissonline.com/" title="Platinum SEO Plugin for WordPress">Techblissonline.com</a>.<br />
69
- You can find more information about XML sitemaps on <a rel="external nofollow" href="http://sitemaps.org">sitemaps.org</a> and Google's <a rel="external nofollow" href="http://code.google.com/p/sitemap-generators/wiki/SitemapGenerators">list of sitemap programs</a>.
70
  </p>
71
  </div>
72
  <div id="sitemap__header">
73
  <h1>XML Sitemap</h1>
74
- <p>This XML Sitemap is generated by WordPress to make your content more visible for search engines. Learn more about XML sitemaps on <a href="https://www.sitemaps.org/">sitemaps.org</a>.</p>
75
  </div>
76
  <div id="sitemap__content">
77
  <p class="text">Number of URLs in this XML Sitemap: <xsl:value-of select="count(sitemap:urlset/sitemap:url)"/>.</p>
64
  <body>
65
  <div id="intro">
66
  <p>
67
+ This is an XML Sitemap which is supposed to be processed by search engines that follow the XML Sitemap standards like Google, Bing and other Search Engines.<br />
68
+ It is generated using the <a rel="nofollow" href="https://wordpress.org/plugins/platinum-seo-pack/">WordPress</a> SiteMap and the <strong>Platinum SEO Plugin</strong> by <strong>Techblissonline.com</strong>
 
69
  </p>
70
  </div>
71
  <div id="sitemap__header">
72
  <h1>XML Sitemap</h1>
73
+ <p>This XML Sitemap is generated by WordPress to make your content discoverable by search engines. Learn more about XML sitemaps on <a href="https://www.sitemaps.org/">sitemaps.org</a>.</p>
74
  </div>
75
  <div id="sitemap__content">
76
  <p class="text">Number of URLs in this XML Sitemap: <xsl:value-of select="count(sitemap:urlset/sitemap:url)"/>.</p>
psp-include/sitemap/sitemap-index.xsl CHANGED
@@ -56,14 +56,13 @@
56
  <body>
57
  <div id="intro">
58
  <p>
59
- This is a XML Sitemap which is supposed to be processed by search engines that follow the XML Sitemap standards like Google, Bing and other Search Engines.<br />
60
- It was generated using the <a rel="external nofollow" href="https://wordpress.org/plugins/platinum-seo-pack/">WordPress</a> SiteMap and the <strong>Platinum SEO Plugin</strong> by <a rel="external nofollow" href="https://techblissonline.com/" title="Platinum SEO Plugin for WordPress">Techblissonline.com</a>.<br />
61
- You can find more information about XML sitemaps on <a rel="external nofollow" href="http://sitemaps.org">sitemaps.org</a> and Google's <a rel="external nofollow" href="http://code.google.com/p/sitemap-generators/wiki/SitemapGenerators">list of sitemap programs</a>.
62
  </p>
63
  </div>
64
  <div id="sitemap__header">
65
  <h1>XML Sitemap</h1>
66
- <p>This XML Sitemap is generated by WordPress to make your content more visible for search engines. Learn more about XML sitemaps on <a href="https://www.sitemaps.org/">sitemaps.org</a>.</p>
67
  </div>
68
  <div id="sitemap__content">
69
  <p class="text">This XML Sitemap contains <xsl:value-of select="count(sitemap:sitemapindex/sitemap:sitemap)"/> URLs.</p>
56
  <body>
57
  <div id="intro">
58
  <p>
59
+ This is an XML Sitemap which is supposed to be processed by search engines that follow the XML Sitemap standards like Google, Bing and other Search Engines.<br />
60
+ It is generated using the <a rel="nofollow" href="https://wordpress.org/plugins/platinum-seo-pack/">WordPress</a> SiteMap and the <strong>Platinum SEO Plugin</strong> by <strong>Techblissonline.com</strong>
 
61
  </p>
62
  </div>
63
  <div id="sitemap__header">
64
  <h1>XML Sitemap</h1>
65
+ <p>This XML Sitemap is generated by WordPress to make your content discoverable by search engines. Learn more about XML sitemaps on <a href="https://www.sitemaps.org/">sitemaps.org</a>.</p>
66
  </div>
67
  <div id="sitemap__content">
68
  <p class="text">This XML Sitemap contains <xsl:value-of select="count(sitemap:sitemapindex/sitemap:sitemap)"/> URLs.</p>
psp-include/sitemap/sitemap-post.xsl CHANGED
@@ -56,14 +56,13 @@
56
  <body>
57
  <div id="intro">
58
  <p>
59
- This is a XML Sitemap which is supposed to be processed by search engines that follow the XML Sitemap standards like Google, Bing and other Search Engines.<br />
60
- It was generated using the <a rel="external nofollow" href="https://wordpress.org/plugins/platinum-seo-pack/">WordPress</a> SiteMap and the <strong>Platinum SEO Plugin</strong> by <a rel="external nofollow" href="https://techblissonline.com/" title="Platinum SEO Plugin for WordPress">Techblissonline.com</a>.<br />
61
- You can find more information about XML sitemaps on <a rel="external nofollow" href="http://sitemaps.org">sitemaps.org</a> and Google's <a rel="external nofollow" href="http://code.google.com/p/sitemap-generators/wiki/SitemapGenerators">list of sitemap programs</a>.
62
  </p>
63
  </div>
64
  <div id="sitemap__header">
65
  <h1>XML Sitemap</h1>
66
- <p>This XML Sitemap is generated by WordPress to make your content more visible for search engines. Learn more about XML sitemaps on <a href="https://www.sitemaps.org/">sitemaps.org</a>.</p>
67
  </div>
68
  <div id="sitemap__content">
69
  <p class="text">Number of URLs in this XML Sitemap: <xsl:value-of select="count(sitemap:urlset/sitemap:url)"/>.</p>
56
  <body>
57
  <div id="intro">
58
  <p>
59
+ This is an XML Sitemap which is supposed to be processed by search engines that follow the XML Sitemap standards like Google, Bing and other Search Engines.<br />
60
+ It is generated using the <a rel="nofollow" href="https://wordpress.org/plugins/platinum-seo-pack/">WordPress</a> SiteMap and the <strong>Platinum SEO Plugin</strong> by <strong>Techblissonline.com</strong>
 
61
  </p>
62
  </div>
63
  <div id="sitemap__header">
64
  <h1>XML Sitemap</h1>
65
+ <p>This XML Sitemap is generated by WordPress to make your content discoverable by search engines. Learn more about XML sitemaps on <a href="https://www.sitemaps.org/">sitemaps.org</a>.</p>
66
  </div>
67
  <div id="sitemap__content">
68
  <p class="text">Number of URLs in this XML Sitemap: <xsl:value-of select="count(sitemap:urlset/sitemap:url)"/>.</p>
psp-include/sitemap/sitemap.xsl CHANGED
@@ -56,14 +56,13 @@
56
  <body>
57
  <div id="intro">
58
  <p>
59
- This is a XML Sitemap which is supposed to be processed by search engines that follow the XML Sitemap standards like Google, Bing and other Search Engines.<br />
60
- It was generated using the <a rel="external nofollow" href="https://wordpress.org/plugins/platinum-seo-pack/">WordPress</a> SiteMap and the <strong>Platinum SEO Plugin</strong> by <a rel="external nofollow" href="https://techblissonline.com/" title="Platinum SEO Plugin for WordPress">Techblissonline.com</a>.<br />
61
- You can find more information about XML sitemaps on <a rel="external nofollow" href="http://sitemaps.org">sitemaps.org</a> and Google's <a rel="external nofollow" href="http://code.google.com/p/sitemap-generators/wiki/SitemapGenerators">list of sitemap programs</a>.
62
  </p>
63
  </div>
64
  <div id="sitemap__header">
65
  <h1>XML Sitemap</h1>
66
- <p>This XML Sitemap is generated by WordPress to make your content more visible for search engines. Learn more about XML sitemaps on <a href="https://www.sitemaps.org/">sitemaps.org</a>.</p>
67
  </div>
68
  <div id="sitemap__content">
69
  <p class="text">Number of URLs in this XML Sitemap: <xsl:value-of select="count(sitemap:urlset/sitemap:url)"/>.</p>
56
  <body>
57
  <div id="intro">
58
  <p>
59
+ This is an XML Sitemap which is supposed to be processed by search engines that follow the XML Sitemap standards like Google, Bing and other Search Engines.<br />
60
+ It is generated using the <a rel="nofollow" href="https://wordpress.org/plugins/platinum-seo-pack/">WordPress</a> SiteMap and the <strong>Platinum SEO Plugin</strong> by <strong>Techblissonline.com</strong>
 
61
  </p>
62
  </div>
63
  <div id="sitemap__header">
64
  <h1>XML Sitemap</h1>
65
+ <p>This XML Sitemap is generated by WordPress to make your content discoverable by search engines. Learn more about XML sitemaps on <a href="https://www.sitemaps.org/">sitemaps.org</a>.</p>
66
  </div>
67
  <div id="sitemap__content">
68
  <p class="text">Number of URLs in this XML Sitemap: <xsl:value-of select="count(sitemap:urlset/sitemap:url)"/>.</p>
psp-include/utilities/psp_helper.php CHANGED
@@ -19,7 +19,7 @@ class PspHelper {
19
  * as description. Touch only if you know what you're doing
20
  */
21
  private $min_description_length = 1;
22
- private $version = "2.1.2";
23
 
24
  public $sitename = "";
25
  public $sitedescription = "";
19
  * as description. Touch only if you know what you're doing
20
  */
21
  private $min_description_length = 1;
22
+ private $version = "2.1.3";
23
 
24
  public $sitename = "";
25
  public $sitedescription = "";
psp_main.php CHANGED
@@ -258,15 +258,15 @@ class PspMain {
258
  '1' === $_GET['psp_ignore_notice'] ) {
259
  $user_id = get_current_user_id();
260
  // Add the meta so that the notice is permanently dismissed.
261
- delete_user_meta( $user_id, 'psp_ignore_notice_v_209' );
262
- update_user_meta( $user_id, 'psp_ignore_notice', "v_212" );
263
  };
264
  };
265
  }
266
 
267
  public function platinum_seo_admin_notice__success() {
268
  $user_id = get_current_user_id();
269
- if ( "v_212" === trim(get_user_meta( $user_id, 'psp_ignore_notice', true ) )) return;
270
  global $pagenow;
271
  $psp_pages = array('platinum-seo-social-pack-by-techblissonline', 'psp-social-by-techblissonline', 'psp-tools-by-techblissonline', 'pspp-licenses');
272
  if ('index.php' === $pagenow || ( $pagenow == 'admin.php' && in_array(sanitize_key($_GET['page']), $psp_pages))) {
@@ -276,7 +276,7 @@ class PspMain {
276
  'psp_ignore_notice' => '1',
277
  'action' => 'psp_delete_adminnotice',
278
  'nonce' => wp_create_nonce('psp_delete_adminnotice'),
279
- ] ) ) .'" style="float:right; display:block; border:none;">'.esc_html__( 'Dismiss permanently', 'platinum-seo-pack' ) .'</a>'.'<br>'. esc_html__( 'See What has Changed in this', 'platinum-seo-pack' ).'<a href="https://techblissonline.com/platinum-wordpress-seo-plugin/#what-is-new" target="_blank"> '.esc_html__( ' Version ', 'platinum-seo-pack' ).'2.1.2'.esc_html__( ' and earlier Versions!', 'platinum-seo-pack' ) .'</a>'; ?></p></strong>
280
  </div>
281
  <?php
282
  }
258
  '1' === $_GET['psp_ignore_notice'] ) {
259
  $user_id = get_current_user_id();
260
  // Add the meta so that the notice is permanently dismissed.
261
+ //delete_user_meta( $user_id, 'psp_ignore_notice_v_209' );
262
+ update_user_meta( $user_id, 'psp_ignore_notice', "v_213" );
263
  };
264
  };
265
  }
266
 
267
  public function platinum_seo_admin_notice__success() {
268
  $user_id = get_current_user_id();
269
+ if ( "v_213" === trim(get_user_meta( $user_id, 'psp_ignore_notice', true ) )) return;
270
  global $pagenow;
271
  $psp_pages = array('platinum-seo-social-pack-by-techblissonline', 'psp-social-by-techblissonline', 'psp-tools-by-techblissonline', 'pspp-licenses');
272
  if ('index.php' === $pagenow || ( $pagenow == 'admin.php' && in_array(sanitize_key($_GET['page']), $psp_pages))) {
276
  'psp_ignore_notice' => '1',
277
  'action' => 'psp_delete_adminnotice',
278
  'nonce' => wp_create_nonce('psp_delete_adminnotice'),
279
+ ] ) ) .'" style="float:right; display:block; border:none;">'.esc_html__( 'Dismiss permanently', 'platinum-seo-pack' ) .'</a>'.'<br>'. esc_html__( 'See What has Changed in this', 'platinum-seo-pack' ).'<a href="https://techblissonline.com/platinum-wordpress-seo-plugin/#what-is-new" target="_blank"> '.esc_html__( ' Version ', 'platinum-seo-pack' ).'2.1.3'.esc_html__( ' and earlier Versions!', 'platinum-seo-pack' ) .'</a>'; ?></p></strong>
280
  </div>
281
  <?php
282
  }
readme.txt CHANGED
@@ -6,7 +6,7 @@ Tags: seo, wordpress seo, plugin, google seo, platinum seo, schema, schema marku
6
  Requires at least: 4.0
7
  Tested up to: 5.4.1
8
  Requires PHP: 5.6
9
- Stable tag: 2.1.2
10
  License: GPLv2 or later
11
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
12
 
@@ -69,6 +69,9 @@ Please read these **[FAQs](https://techblissonline.com/platinum-seo-pack-faq/)**
69
  4. Social Settings for Facebook, Twitter, Pinterest and LinkedIn. Generates Open Grah Tags and Twitter compatible Tags.
70
 
71
  == Changelog ==
 
 
 
72
  = 2.1.2 =
73
  * 2020-06-01 - Sitemap has been further enhanced with the latest WordPress sitemap files. Also a few styling changes have been implemented to the sitemap rendered by the plugin. A few other cosmetic changes have been done to Help text wordings in a few files.
74
 
6
  Requires at least: 4.0
7
  Tested up to: 5.4.1
8
  Requires PHP: 5.6
9
+ Stable tag: 2.1.3
10
  License: GPLv2 or later
11
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
12
 
69
  4. Social Settings for Facebook, Twitter, Pinterest and LinkedIn. Generates Open Grah Tags and Twitter compatible Tags.
70
 
71
  == Changelog ==
72
+ = 2.1.3 =
73
+ * 2020-06-12 - Integrated the latest WordPress sitemap files.
74
+
75
  = 2.1.2 =
76
  * 2020-06-01 - Sitemap has been further enhanced with the latest WordPress sitemap files. Also a few styling changes have been implemented to the sitemap rendered by the plugin. A few other cosmetic changes have been done to Help text wordings in a few files.
77