All in One SEO Pack - Version 2.3.12.3

Version Description

Download this release

Release Info

Developer hallsofmontezuma
Plugin Icon 128x128 All in One SEO Pack
Version 2.3.12.3
Comparing to
See all releases

Code changes from version 2.3.12.2.1 to 2.3.12.3

admin/aioseop_module_class.php CHANGED
@@ -1,6 +1,7 @@
1
  <?php
2
  /**
3
  * @package All-in-One-SEO-Pack
 
4
  */
5
 
6
  if ( ! class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
@@ -1763,6 +1764,7 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
1763
 
1764
  /**
1765
  * Load scripts for module, can pass data to module script.
 
1766
  */
1767
  function enqueue_scripts() {
1768
  wp_enqueue_script( 'sack' );
@@ -1775,6 +1777,7 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
1775
  if ( ! empty( $this->pointers ) ) {
1776
  wp_enqueue_script( 'wp-pointer', false, array( 'jquery' ) );
1777
  }
 
1778
  wp_enqueue_script( 'aioseop-module-script', AIOSEOP_PLUGIN_URL . 'js/modules/aioseop_module.js', array(), AIOSEOP_VERSION );
1779
  if ( ! empty( $this->script_data ) ) {
1780
  aioseop_localize_script_data();
1
  <?php
2
  /**
3
  * @package All-in-One-SEO-Pack
4
+ * @version 2.3.12.2
5
  */
6
 
7
  if ( ! class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
1764
 
1765
  /**
1766
  * Load scripts for module, can pass data to module script.
1767
+ * @since 2.3.12.3 Add missing wp_enqueue_media.
1768
  */
1769
  function enqueue_scripts() {
1770
  wp_enqueue_script( 'sack' );
1777
  if ( ! empty( $this->pointers ) ) {
1778
  wp_enqueue_script( 'wp-pointer', false, array( 'jquery' ) );
1779
  }
1780
+ wp_enqueue_media();
1781
  wp_enqueue_script( 'aioseop-module-script', AIOSEOP_PLUGIN_URL . 'js/modules/aioseop_module.js', array(), AIOSEOP_VERSION );
1782
  if ( ! empty( $this->script_data ) ) {
1783
  aioseop_localize_script_data();
admin/display/credits-content.php CHANGED
@@ -37,8 +37,9 @@
37
 
38
  <h3 class="wp-people-group">&#x1f31f;<?php _e( 'Recent Rockstar Contributors', 'all-in-one-seo-pack' ); ?>&#x1f31f;</h3>
39
  <ul class="wp-people-group " id="wp-people-group-rockstars">
40
- <li><?php printf( __('Want to see your name and picture here as a community developer? Open a new issue on Github to report a bug or request a feature or find an issue and submit code!', 'all-in-one-seo-pack')); ?>
41
- <a href="https://github.com/semperfiwebdesign/all-in-one-seo-pack" target="_blank">Click here to go to Github</a>
 
42
  </li>
43
  <li class="wp-person" id="wp-person-dougalcampbell">
44
  <a class="web" target="_blank" href="https://profiles.wordpress.org/dougal/"><img alt="" class="gravatar" src="https://www.gravatar.com/avatar/81717a172b6918071fbea1a52483294b?s=60">
37
 
38
  <h3 class="wp-people-group">&#x1f31f;<?php _e( 'Recent Rockstar Contributors', 'all-in-one-seo-pack' ); ?>&#x1f31f;</h3>
39
  <ul class="wp-people-group " id="wp-people-group-rockstars">
40
+ /* translators: '%1$s' and '%2$s' are used as placeholders and turn the text in between into a clickable link */
41
+ <li><?php printf( __('Want to see your name and picture here as a community developer? %1$sClick here%2$s to open an issue on GitHub to report a bug, request a feature or find an issue and submit code!', 'all-in-one-seo-pack'),
42
+ '<a href="https://github.com/semperfiwebdesign/all-in-one-seo-pack" target="_blank">', '</a>'); ?>
43
  </li>
44
  <li class="wp-person" id="wp-person-dougalcampbell">
45
  <a class="web" target="_blank" href="https://profiles.wordpress.org/dougal/"><img alt="" class="gravatar" src="https://www.gravatar.com/avatar/81717a172b6918071fbea1a52483294b?s=60">
aioseop_class.php CHANGED
@@ -3070,7 +3070,7 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
3070
 
3071
  $post_objs = get_post_types( '', 'objects' );
3072
  $pt = array_keys( $post_objs );
3073
- $rempost = array( 'revision', 'nav_menu_item' );
3074
  $pt = array_diff( $pt, $rempost );
3075
  $post_types = array();
3076
 
3070
 
3071
  $post_objs = get_post_types( '', 'objects' );
3072
  $pt = array_keys( $post_objs );
3073
+ $rempost = array( 'revision', 'nav_menu_item', 'custom_css', 'customize_changeset' ); // Don't show these built-in types as options for CPT SEO.
3074
  $pt = array_diff( $pt, $rempost );
3075
  $post_types = array();
3076
 
all_in_one_seo_pack.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: All In One SEO Pack
4
  Plugin URI: https://semperplugins.com/all-in-one-seo-pack-pro-version/
5
  Description: Out-of-the-box SEO for your WordPress blog. Features like XML Sitemaps, SEO for custom post types, SEO for blogs or business sites, SEO for ecommerce sites, and much more. More than 30 million downloads since 2007.
6
- Version: 2.3.12.2.1
7
  Author: Michael Torbert
8
  Author URI: https://semperplugins.com/all-in-one-seo-pack-pro-version/
9
  Text Domain: all-in-one-seo-pack
@@ -31,14 +31,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
31
  * The original WordPress SEO plugin.
32
  *
33
  * @package All-in-One-SEO-Pack
34
- * @version 2.3.12.2.1
35
  */
36
 
37
  if ( ! defined( 'AIOSEOPPRO' ) ) {
38
  define( 'AIOSEOPPRO', false );
39
  }
40
  if ( ! defined( 'AIOSEOP_VERSION' ) ) {
41
- define( 'AIOSEOP_VERSION', '2.3.12.2.1' );
42
  }
43
  global $aioseop_plugin_name;
44
  $aioseop_plugin_name = 'All in One SEO Pack';
@@ -369,6 +369,12 @@ if ( ! function_exists( 'aiosp_action_links' ) ) {
369
  }
370
 
371
  if ( ! function_exists( 'aioseop_init_class' ) ) {
 
 
 
 
 
 
372
  function aioseop_init_class() {
373
  global $aiosp;
374
  load_plugin_textdomain( 'all-in-one-seo-pack', false, dirname( plugin_basename( __FILE__ ) ) . '/i18n/' );
@@ -382,6 +388,7 @@ if ( ! function_exists( 'aioseop_init_class' ) ) {
382
  require_once( AIOSEOP_PLUGIN_DIR . 'admin/meta_import.php' );
383
  require_once( AIOSEOP_PLUGIN_DIR . 'inc/translations.php' );
384
  require_once( AIOSEOP_PLUGIN_DIR . 'public/opengraph.php' );
 
385
  require_once( AIOSEOP_PLUGIN_DIR . 'inc/compatability/compat-init.php');
386
  require_once( AIOSEOP_PLUGIN_DIR . 'public/front.php' );
387
  require_once( AIOSEOP_PLUGIN_DIR . 'public/google-analytics.php' );
3
  Plugin Name: All In One SEO Pack
4
  Plugin URI: https://semperplugins.com/all-in-one-seo-pack-pro-version/
5
  Description: Out-of-the-box SEO for your WordPress blog. Features like XML Sitemaps, SEO for custom post types, SEO for blogs or business sites, SEO for ecommerce sites, and much more. More than 30 million downloads since 2007.
6
+ Version: 2.3.12.3
7
  Author: Michael Torbert
8
  Author URI: https://semperplugins.com/all-in-one-seo-pack-pro-version/
9
  Text Domain: all-in-one-seo-pack
31
  * The original WordPress SEO plugin.
32
  *
33
  * @package All-in-One-SEO-Pack
34
+ * @version 2.3.12.3
35
  */
36
 
37
  if ( ! defined( 'AIOSEOPPRO' ) ) {
38
  define( 'AIOSEOPPRO', false );
39
  }
40
  if ( ! defined( 'AIOSEOP_VERSION' ) ) {
41
+ define( 'AIOSEOP_VERSION', '2.3.12.3' );
42
  }
43
  global $aioseop_plugin_name;
44
  $aioseop_plugin_name = 'All in One SEO Pack';
369
  }
370
 
371
  if ( ! function_exists( 'aioseop_init_class' ) ) {
372
+ /**
373
+ * Inits All-in-One-Seo plugin class.
374
+ *
375
+ * @since ?? // When was this added?
376
+ * @since 2.3.12.3 Loads third party compatibility class.
377
+ */
378
  function aioseop_init_class() {
379
  global $aiosp;
380
  load_plugin_textdomain( 'all-in-one-seo-pack', false, dirname( plugin_basename( __FILE__ ) ) . '/i18n/' );
388
  require_once( AIOSEOP_PLUGIN_DIR . 'admin/meta_import.php' );
389
  require_once( AIOSEOP_PLUGIN_DIR . 'inc/translations.php' );
390
  require_once( AIOSEOP_PLUGIN_DIR . 'public/opengraph.php' );
391
+ require_once( AIOSEOP_PLUGIN_DIR . 'inc/compatability/abstract/aiosep_compatible.php');
392
  require_once( AIOSEOP_PLUGIN_DIR . 'inc/compatability/compat-init.php');
393
  require_once( AIOSEOP_PLUGIN_DIR . 'public/front.php' );
394
  require_once( AIOSEOP_PLUGIN_DIR . 'public/google-analytics.php' );
i18n/all-in-one-seo-pack.pot CHANGED
@@ -3495,7 +3495,7 @@ msgstr ""
3495
  msgid ""
3496
  "Out-of-the-box SEO for your WordPress blog. Features like XML Sitemaps, SEO "
3497
  "for custom post types, SEO for blogs or business sites, SEO for ecommerce "
3498
- "sites, and much more. Almost 30 million downloads since 2007."
3499
  msgstr ""
3500
 
3501
  #. Author of the plugin/theme
3495
  msgid ""
3496
  "Out-of-the-box SEO for your WordPress blog. Features like XML Sitemaps, SEO "
3497
  "for custom post types, SEO for blogs or business sites, SEO for ecommerce "
3498
+ "sites, and much more. More than 30 million downloads since 2007.""
3499
  msgstr ""
3500
 
3501
  #. Author of the plugin/theme
inc/aioseop_functions.php CHANGED
@@ -5,6 +5,7 @@
5
  * We'll eventually move these to a better place, and figure out ones not being used anymore.
6
  *
7
  * @package All-in-One-SEO-Pack
 
8
  */
9
 
10
  if ( ! function_exists( 'aioseop_load_modules' ) ) {
@@ -956,3 +957,19 @@ function aioseop_woo_upgrade_notice_dismissed() {
956
 
957
  update_user_meta( get_current_user_id(), 'aioseop_woo_upgrade_notice_dismissed', true );
958
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  * We'll eventually move these to a better place, and figure out ones not being used anymore.
6
  *
7
  * @package All-in-One-SEO-Pack
8
+ * @version 2.3.13
9
  */
10
 
11
  if ( ! function_exists( 'aioseop_load_modules' ) ) {
957
 
958
  update_user_meta( get_current_user_id(), 'aioseop_woo_upgrade_notice_dismissed', true );
959
  }
960
+
961
+ /**
962
+ * Returns home_url() value compatible for any use.
963
+ * Thought for compatibility purposes.
964
+ *
965
+ * @since 2.3.12.3
966
+ *
967
+ * @param string $path Relative path to home_url().
968
+ *
969
+ * @return string url.
970
+ */
971
+ function aioseop_home_url( $path = '/' ) {
972
+
973
+ $url = apply_filters( 'aioseop_home_url', $path );
974
+ return $path === $url ? home_url( $path ) : $url;
975
+ }
inc/compatability/abstract/aiosep_compatible.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! class_exists( 'All_in_One_SEO_Pack_Compatible' ) ) {
3
+ /**
4
+ * Abstract class to be used to create compatibility with 3rd party wordpress plugins.
5
+ *
6
+ * @package All-in-One-SEO-Pack
7
+ * @author Alejandro Mostajo
8
+ * @copyright Semperfi Web Design <https://semperplugins.com/>
9
+ * @version 2.3.13
10
+ * @since 2.3.12.3
11
+ */
12
+ abstract class All_in_One_SEO_Pack_Compatible {
13
+ /**
14
+ * Returns flag indicating if compatible plugin exists in current instalation or not.
15
+ * This function should be overwritten on child class.
16
+ * @since 2.3.12.3
17
+ *
18
+ * @return bool
19
+ */
20
+ public function exists() {
21
+ return false;
22
+ }
23
+
24
+ /**
25
+ * Method executed by compatibility handler to declare hooks and/or any other compatibility code needed.
26
+ * @since 2.3.12.3
27
+ */
28
+ public function hooks() {
29
+ // TODO per compatible plugin.
30
+ }
31
+ }
32
+ }
inc/compatability/compat-init.php CHANGED
@@ -5,7 +5,7 @@
5
  * Eventually we'll have subclasses for each.
6
  *
7
  * @package All-in-One-SEO-Pack
8
- * @since 2.3.6
9
  */
10
 
11
  if ( ! class_exists( 'All_in_One_SEO_Pack_Compatibility' ) ) {
@@ -15,8 +15,18 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Compatibility' ) ) {
15
  *
16
  * @since 2.3.6
17
  */
 
18
  class All_in_One_SEO_Pack_Compatibility {
19
 
 
 
 
 
 
 
 
 
 
20
  /**
21
  * All_in_One_SEO_Pack_Compatibility constructor.
22
  *
@@ -32,6 +42,7 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Compatibility' ) ) {
32
  * Load Compatibility Hooks.
33
  *
34
  * @since 2.3.6
 
35
  */
36
  public function load_compatibility_hooks() {
37
  // We'll use this until we set up our classes.
@@ -48,6 +59,10 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Compatibility' ) ) {
48
  if ( isset( $aioseop_options['modules']['aiosp_feature_manager_options']['aiosp_feature_manager_enable_opengraph'] ) && $aioseop_options['modules']['aiosp_feature_manager_options']['aiosp_feature_manager_enable_opengraph'] === 'on' ) {
49
  add_filter( 'twitter_card', array( $this, 'aioseop_disable_twitter' ) );
50
  }
 
 
 
 
51
  }
52
 
53
  /**
@@ -120,8 +135,15 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Compatibility' ) ) {
120
  * Load Compatibility classes.
121
  *
122
  * @since 2.3.6
 
123
  */
124
  public function load_compatibility_classes() {
 
 
 
 
 
 
125
  // Eventually we'll load our other classes from here.
126
  $this->load_compatibility_hooks();
127
  }
5
  * Eventually we'll have subclasses for each.
6
  *
7
  * @package All-in-One-SEO-Pack
8
+ * @since 2.3.13
9
  */
10
 
11
  if ( ! class_exists( 'All_in_One_SEO_Pack_Compatibility' ) ) {
15
  *
16
  * @since 2.3.6
17
  */
18
+
19
  class All_in_One_SEO_Pack_Compatibility {
20
 
21
+ /**
22
+ * List of compatibility classes to execute and run.
23
+ *
24
+ * @since 2.3.12.3
25
+ *
26
+ * @var array
27
+ */
28
+ protected $classes = array();
29
+
30
  /**
31
  * All_in_One_SEO_Pack_Compatibility constructor.
32
  *
42
  * Load Compatibility Hooks.
43
  *
44
  * @since 2.3.6
45
+ * @since 2.3.12.3 Runs hooks located in compatibility classes.
46
  */
47
  public function load_compatibility_hooks() {
48
  // We'll use this until we set up our classes.
59
  if ( isset( $aioseop_options['modules']['aiosp_feature_manager_options']['aiosp_feature_manager_enable_opengraph'] ) && $aioseop_options['modules']['aiosp_feature_manager_options']['aiosp_feature_manager_enable_opengraph'] === 'on' ) {
60
  add_filter( 'twitter_card', array( $this, 'aioseop_disable_twitter' ) );
61
  }
62
+ // Run compatibility classes
63
+ for ( $i = count( $this->classes ) - 1; $i >= 0; --$i ) {
64
+ $this->classes[ $i ]->hooks();
65
+ }
66
  }
67
 
68
  /**
135
  * Load Compatibility classes.
136
  *
137
  * @since 2.3.6
138
+ * @since 2.3.12.3 WPML compatibility loaded.
139
  */
140
  public function load_compatibility_classes() {
141
+ // Load classes
142
+ require_once __DIR__.'/compat-wpml.php';
143
+ // Evaluate classes and push them into array
144
+ $target = new All_in_One_SEO_Pack_Wpml;
145
+ if ( $target->exists() )
146
+ $this->classes[] = $target;
147
  // Eventually we'll load our other classes from here.
148
  $this->load_compatibility_hooks();
149
  }
inc/compatability/compat-wpml.php ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! class_exists( 'All_in_One_SEO_Pack_Wpml' ) ) {
3
+ /**
4
+ * Compatibility with WPML - Wordpress Multilingual Plugin
5
+ *
6
+ * @link https://wpml.org/
7
+ * @package All-in-One-SEO-Pack
8
+ * @author Alejandro Mostajo
9
+ * @copyright Semperfi Web Design <https://semperplugins.com/>
10
+ * @version 2.3.13
11
+ */
12
+ class All_in_One_SEO_Pack_Wpml extends All_in_One_SEO_Pack_Compatible {
13
+ /**
14
+ * Returns flag indicating if WPML is present.
15
+ *
16
+ * @since 2.3.12.3
17
+ *
18
+ * @return bool
19
+ */
20
+ public function exists() {
21
+ return function_exists( 'icl_object_id' );
22
+ }
23
+
24
+ /**
25
+ * Declares compatibility hooks.
26
+ *
27
+ * @since 2.3.12.3
28
+ */
29
+ public function hooks() {
30
+ add_filter( 'aioseop_home_url', array( &$this, 'aioseop_home_url' ) );
31
+ add_filter( 'aioseop_sitemap_xsl_url', array( &$this, 'aioseop_sitemap_xsl_url' ) );
32
+ }
33
+
34
+ /**
35
+ * Returns specified url filtered by wpml.
36
+ * This is needed to obtain the correct domain in which wordpress is running on.
37
+ * AIOSEOP would have ran first expecting the return of home_url().
38
+ *
39
+ * @since 2.3.12.3
40
+ *
41
+ * @param string $path Relative path or url.
42
+ *
43
+ * @param string filtered url.
44
+ */
45
+ public function aioseop_home_url( $path ) {
46
+ $url = apply_filters( 'wpml_home_url', home_url( '/' ) );
47
+ // Remove query string
48
+ preg_match_all( '/\?[\s\S]+/', $url, $matches );
49
+ // Get base
50
+ $url = preg_replace( '/\?[\s\S]+/', '', $url);
51
+ $url = trailingslashit( $url );
52
+ $url .= preg_replace( '/\//', '', $path, 1);
53
+ // Add query string
54
+ if ( count( $matches ) > 0 && count( $matches[0] ) > 0 )
55
+ $url .= $matches[0][0];
56
+ return $url;
57
+ }
58
+ /**
59
+ * Returns XSL url without query string.
60
+ *
61
+ * @since 2.3.12.3
62
+ *
63
+ * @param string $url XSL url.
64
+ *
65
+ * @param string filtered url.
66
+ */
67
+ public function aioseop_sitemap_xsl_url( $url )
68
+ {
69
+ return preg_replace( '/\?[\s\S]+/', '', $url);
70
+ }
71
+ }
72
+ }
inc/sitemap-xsl.php CHANGED
@@ -7,11 +7,13 @@
7
  * @package All-in-One-SEO-Pack
8
  *
9
  * @since 2.3.6
 
10
  */
11
 
12
  echo '<?xml version="1.0" encoding="UTF-8"?>';
13
  ?>
14
  <xsl:stylesheet version="2.0"
 
15
  xmlns:html="http://www.w3.org/TR/REC-html40"
16
  xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"
17
  xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
@@ -26,76 +28,75 @@ echo '<?xml version="1.0" encoding="UTF-8"?>';
26
  </xsl:choose>
27
  </xsl:variable>
28
  <html xmlns="http://www.w3.org/1999/xhtml">
29
- <head>
30
- <title>
31
- <xsl:choose><xsl:when test="$fileType='Sitemap'">Sitemap</xsl:when>
32
- <xsl:otherwise>Sitemap Index</xsl:otherwise>
33
- </xsl:choose>
34
- </title>
35
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
36
- <style type="text/css">
37
- body {
38
- margin: 0;
39
- font-family: Helvetica, Arial, sans-serif;
40
- font-size: 68.5%;
41
- }
42
- #content-head {
43
- background-color: #4275f4;
44
- padding: 20px 40px;
45
- }
46
- #content-head h1,
47
- #content-head p,
48
- #content-head a {
49
- color: #fff;
50
- font-size: 1.2em;
51
- }
52
- #content-head h1 {
53
- font-size: 2em;
54
- }
55
- table {
56
- margin: 20px 40px;
57
- border: none;
58
- border-collapse: collapse;
59
- }
60
- table {
61
- font-size: 1em;
62
- width: 75%;
63
- }
64
- th {
65
- border-bottom: 1px solid #ccc;
66
- text-align: left;
67
- padding: 15px 5px;
68
- font-size: 14px;
69
- }
70
- td {
71
- padding: 10px 5px;
72
- border-left: 3px solid #fff;
73
- }
74
- tr.stripe {
75
- background-color: #f7f7f7;
76
- }
77
- </style>
78
- </head>
79
- <body>
80
- <div id="content">
81
- <div id="content-head">
82
- <h1>XML Sitemap</h1>
83
- <p>Generated by <a href="https://semperplugins.com">All in One </a> <a href="https://semperplugins.com/all-in-one-seo-pack-pro-version/">SEO</a>, this is an XML Sitemap, meant to be consumed by search engines like Google or Bing.<br/>
84
- You can find more information about XML sitemaps at <a href="http://sitemaps.org">sitemaps.org</a>.</p>
85
- <p><xsl:choose>
 
 
 
 
 
 
86
  <xsl:when test="$fileType='Sitemap'">
87
- This sitemap contains <xsl:value-of select="count(sitemap:urlset/sitemap:url)"></xsl:value-of> URLs</xsl:when>
88
- <xsl:otherwise>This sitemap index contains <xsl:value-of select="count(sitemap:sitemapindex/sitemap:sitemap)"></xsl:value-of> sitemaps</xsl:otherwise>
89
- </xsl:choose></p>
90
- </div>
91
- <xsl:choose>
92
- <xsl:when test="$fileType='Sitemap'">
93
- <xsl:call-template name="sitemapTable"/></xsl:when>
94
- <xsl:otherwise><xsl:call-template name="siteindexTable"/></xsl:otherwise>
95
- </xsl:choose>
96
-
97
- </div>
98
- </body>
99
  </html>
100
  </xsl:template>
101
  <xsl:template name="siteindexTable">
@@ -177,9 +178,6 @@ echo '<?xml version="1.0" encoding="UTF-8"?>';
177
  <xsl:value-of select="concat(substring(sitemap:lastmod,0,11),concat(' ', substring(sitemap:lastmod,12,5)))"/>
178
  </td>
179
  <td>
180
-
181
-
182
-
183
  </td>
184
  </tr>
185
  </xsl:for-each>
7
  * @package All-in-One-SEO-Pack
8
  *
9
  * @since 2.3.6
10
+ * @since 2.3.12.3 Refactoring indentation and added xmlns fix for Chrome rendering.
11
  */
12
 
13
  echo '<?xml version="1.0" encoding="UTF-8"?>';
14
  ?>
15
  <xsl:stylesheet version="2.0"
16
+ xmlns="http://www.w3.org/1999/xhtml"
17
  xmlns:html="http://www.w3.org/TR/REC-html40"
18
  xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"
19
  xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
28
  </xsl:choose>
29
  </xsl:variable>
30
  <html xmlns="http://www.w3.org/1999/xhtml">
31
+ <head>
32
+ <title>
33
+ <xsl:choose><xsl:when test="$fileType='Sitemap'">Sitemap</xsl:when>
34
+ <xsl:otherwise>Sitemap Index</xsl:otherwise>
35
+ </xsl:choose>
36
+ </title>
37
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
38
+ <style type="text/css">
39
+ body {
40
+ margin: 0;
41
+ font-family: Helvetica, Arial, sans-serif;
42
+ font-size: 68.5%;
43
+ }
44
+ #content-head {
45
+ background-color: #4275f4;
46
+ padding: 20px 40px;
47
+ }
48
+ #content-head h1,
49
+ #content-head p,
50
+ #content-head a {
51
+ color: #fff;
52
+ font-size: 1.2em;
53
+ }
54
+ #content-head h1 {
55
+ font-size: 2em;
56
+ }
57
+ table {
58
+ margin: 20px 40px;
59
+ border: none;
60
+ border-collapse: collapse;
61
+ }
62
+ table {
63
+ font-size: 1em;
64
+ width: 75%;
65
+ }
66
+ th {
67
+ border-bottom: 1px solid #ccc;
68
+ text-align: left;
69
+ padding: 15px 5px;
70
+ font-size: 14px;
71
+ }
72
+ td {
73
+ padding: 10px 5px;
74
+ border-left: 3px solid #fff;
75
+ }
76
+ tr.stripe {
77
+ background-color: #f7f7f7;
78
+ }
79
+ </style>
80
+ </head>
81
+ <body>
82
+ <div id="content">
83
+ <div id="content-head">
84
+ <h1>XML Sitemap</h1>
85
+ <p>Generated by <a href="https://semperplugins.com">All in One </a> <a href="https://semperplugins.com/all-in-one-seo-pack-pro-version/">SEO</a>, this is an XML Sitemap, meant to be consumed by search engines like Google or Bing.<br/>
86
+ You can find more information about XML sitemaps at <a href="http://sitemaps.org">sitemaps.org</a>.</p>
87
+ <p><xsl:choose>
88
+ <xsl:when test="$fileType='Sitemap'">
89
+ This sitemap contains <xsl:value-of select="count(sitemap:urlset/sitemap:url)"></xsl:value-of> URLs</xsl:when>
90
+ <xsl:otherwise>This sitemap index contains <xsl:value-of select="count(sitemap:sitemapindex/sitemap:sitemap)"></xsl:value-of> sitemaps</xsl:otherwise>
91
+ </xsl:choose></p>
92
+ </div>
93
+ <xsl:choose>
94
  <xsl:when test="$fileType='Sitemap'">
95
+ <xsl:call-template name="sitemapTable"/></xsl:when>
96
+ <xsl:otherwise><xsl:call-template name="siteindexTable"/></xsl:otherwise>
97
+ </xsl:choose>
98
+ </div>
99
+ </body>
 
 
 
 
 
 
 
100
  </html>
101
  </xsl:template>
102
  <xsl:template name="siteindexTable">
178
  <xsl:value-of select="concat(substring(sitemap:lastmod,0,11),concat(' ', substring(sitemap:lastmod,12,5)))"/>
179
  </td>
180
  <td>
 
 
 
181
  </td>
182
  </tr>
183
  </xsl:for-each>
modules/aioseop_importer_exporter.php CHANGED
@@ -120,10 +120,12 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Importer_Exporter' ) ) {
120
 
121
  function debug_post_types() {
122
  $post_types = $this->get_post_type_titles();
123
- $rempost = array(
124
  'attachment' => 1,
125
  'revision' => 1,
126
  'nav_menu_item' => 1,
 
 
127
  );
128
  $this->default_options['export_post_types']['initial_options'] = array_diff_key(
129
  $post_types,
120
 
121
  function debug_post_types() {
122
  $post_types = $this->get_post_type_titles();
123
+ $rempost = array(
124
  'attachment' => 1,
125
  'revision' => 1,
126
  'nav_menu_item' => 1,
127
+ 'custom_css' => 1,
128
+ 'customize_changeset' => 1,
129
  );
130
  $this->default_options['export_post_types']['initial_options'] = array_diff_key(
131
  $post_types,
modules/aioseop_opengraph.php CHANGED
@@ -1341,7 +1341,7 @@ END;
1341
  'filter_metabox_options',
1342
  ), 10, 3 );
1343
  $post_types = $this->get_post_type_titles();
1344
- $rempost = array( 'revision' => 1, 'nav_menu_item' => 1 );
1345
  $post_types = array_diff_key( $post_types, $rempost );
1346
  $this->default_options['types']['initial_options'] = $post_types;
1347
  foreach ( $post_types as $slug => $name ) {
1341
  'filter_metabox_options',
1342
  ), 10, 3 );
1343
  $post_types = $this->get_post_type_titles();
1344
+ $rempost = array( 'revision' => 1, 'nav_menu_item' => 1, 'custom_css' => 1, 'customize_changeset' => 1 );
1345
  $post_types = array_diff_key( $post_types, $rempost );
1346
  $this->default_options['types']['initial_options'] = $post_types;
1347
  foreach ( $post_types as $slug => $name ) {
modules/aioseop_sitemap.php CHANGED
@@ -3,6 +3,7 @@
3
  * Sitemap class.
4
  *
5
  * @package All-in-One-SEO-Pack
 
6
  */
7
 
8
  if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
@@ -603,6 +604,9 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
603
  *
604
  * Add in options for status display on settings page, sitemap rewriting on multisite.
605
  *
 
 
 
606
  * @param $options
607
  *
608
  * @return mixed
@@ -614,7 +618,7 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
614
  if ( isset( $options[ $this->prefix . 'max_posts' ] ) && ( ( $options[ $this->prefix . 'max_posts' ] <= 0 ) || ( $options[ $this->prefix . 'max_posts' ] >= 50000 ) ) ) {
615
  $options[ $this->prefix . 'max_posts' ] = 50000;
616
  }
617
- $url = trailingslashit( get_home_url() ) . $options[ $this->prefix . 'filename' ] . '.xml';
618
 
619
  $options[ $this->prefix . 'link' ] = sprintf( __( 'Click here to %s.', 'all-in-one-seo-pack' ), '<a href="' . esc_url( $url ) . '" target="_blank">' . __( 'view your sitemap', 'all-in-one-seo-pack' ) . '</a>' );
620
  $options[ $this->prefix . 'link' ] .= __( ' Your sitemap has been created', 'all-in-one-seo-pack' );
@@ -1276,13 +1280,18 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
1276
  /**
1277
  * Build a url to the sitemap.
1278
  *
 
 
 
1279
  * @return string
1280
  */
1281
  function get_sitemap_url() {
1282
- $url = get_home_url() . '/' . $this->options["{$this->prefix}filename"] . '.xml';
 
1283
  if ( $this->options["{$this->prefix}gzipped"] ) {
1284
- $url .= '.gz';
1285
  }
 
1286
 
1287
  return $url;
1288
  }
@@ -1524,6 +1533,9 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
1524
  /**
1525
  * Build an index of sitemaps used.
1526
  *
 
 
 
1527
  * @return array
1528
  */
1529
  function get_sitemap_index_filenames() {
@@ -1542,8 +1554,9 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
1542
  }
1543
  $options["{$this->prefix}posttypes"] = array_diff( $options["{$this->prefix}posttypes"], array( 'all' ) );
1544
  $options["{$this->prefix}taxonomies"] = array_diff( $options["{$this->prefix}taxonomies"], array( 'all' ) );
1545
- $url_base = trailingslashit( get_home_url() );
1546
- $files[] = array( 'loc' => $url_base . $prefix . '_addl' . $suffix );
 
1547
  if ( ! empty( $options["{$this->prefix}posttypes"] ) ) {
1548
  $prio = $this->get_default_priority( 'post' );
1549
  $freq = $this->get_default_frequency( 'post' );
@@ -1563,21 +1576,21 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
1563
  $count = 1;
1564
  for ( $post_count = 0; $post_count < $post_counts[ $sm ]; $post_count += $this->max_posts ) {
1565
  $files[] = array(
1566
- 'loc' => $url_base . $prefix . '_' . $sm . '_' . ( $count ++ ) . $suffix,
1567
  'priority' => $prio,
1568
  'changefreq' => $freq,
1569
  );
1570
  }
1571
  } else {
1572
  $files[] = array(
1573
- 'loc' => $url_base . $prefix . '_' . $sm . $suffix,
1574
  'priority' => $prio,
1575
  'changefreq' => $freq,
1576
  );
1577
  }
1578
  } else {
1579
  $files[] = array(
1580
- 'loc' => $url_base . $prefix . '_' . $sm . $suffix,
1581
  'priority' => $prio,
1582
  'changefreq' => $freq,
1583
  );
@@ -1586,14 +1599,14 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
1586
  }
1587
  if ( $this->option_isset( 'archive' ) ) {
1588
  $files[] = array(
1589
- 'loc' => $url_base . $prefix . '_archive' . $suffix,
1590
  'priority' => $this->get_default_priority( 'archive' ),
1591
  'changefreq' => $this->get_default_frequency( 'archive' ),
1592
  );
1593
  }
1594
  if ( $this->option_isset( 'author' ) ) {
1595
  $files[] = array(
1596
- 'loc' => $url_base . $prefix . '_author' . $suffix,
1597
  'priority' => $this->get_default_priority( 'author' ),
1598
  'changefreq' => $this->get_default_frequency( 'author' ),
1599
  );
@@ -1608,21 +1621,21 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
1608
  $count = 1;
1609
  for ( $tc = 0; $tc < $term_count; $tc += $this->max_posts ) {
1610
  $files[] = array(
1611
- 'loc' => $url_base . $prefix . '_' . $sm . '_' . ( $count ++ ) . $suffix,
1612
  'priority' => $this->get_default_priority( 'taxonomies' ),
1613
  'changefreq' => $this->get_default_frequency( 'taxonomies' ),
1614
  );
1615
  }
1616
  } else {
1617
  $files[] = array(
1618
- 'loc' => $url_base . $prefix . '_' . $sm . $suffix,
1619
  'priority' => $this->get_default_priority( 'taxonomies' ),
1620
  'changefreq' => $this->get_default_frequency( 'taxonomies' ),
1621
  );
1622
  }
1623
  } else {
1624
  $files[] = array(
1625
- 'loc' => $url_base . $prefix . '_' . $sm . $suffix,
1626
  'priority' => $this->get_default_priority( 'taxonomies' ),
1627
  'changefreq' => $this->get_default_frequency( 'taxonomies' ),
1628
  );
@@ -1789,6 +1802,9 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
1789
  /**
1790
  * Get simple sitemap.
1791
  *
 
 
 
1792
  * @return array
1793
  */
1794
  function get_simple_sitemap() {
@@ -1803,7 +1819,7 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
1803
  $prio = $this->get_all_post_priority_data( $options["{$this->prefix}posttypes"] );
1804
 
1805
  $home = array(
1806
- 'loc' => get_home_url(),
1807
  'priority' => $this->get_default_priority( 'homepage' ),
1808
  'changefreq' => $this->get_default_frequency( 'homepage' ),
1809
  );
@@ -1892,10 +1908,11 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
1892
  * @see https://semperplugins.com/documentation/aioseop_sitemap_xsl_url/
1893
  *
1894
  * @since 2.3.6
 
1895
  */
1896
  function get_sitemap_xsl() {
1897
 
1898
- return esc_url( apply_filters( 'aioseop_sitemap_xsl_url', home_url( '/sitemap.xsl' ) ) );
1899
  }
1900
 
1901
  /**
@@ -2213,15 +2230,17 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
2213
 
2214
  /**
2215
  * Gets additional pages.
2216
- *
2217
  * Return data for user entered additional pages.
2218
  *
 
 
 
2219
  * @return array|mixed|void
2220
  */
2221
  function get_addl_pages_only() {
2222
  $pages = array();
2223
  if ( ! empty( $this->options[ $this->prefix . 'addl_pages' ] ) ) {
2224
- $siteurl = parse_url( get_home_url() );
2225
  foreach ( $this->options[ $this->prefix . 'addl_pages' ] as $k => $v ) {
2226
  $url = parse_url( $k );
2227
  if ( empty( $url['scheme'] ) ) {
@@ -2266,12 +2285,15 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
2266
  /**
2267
  * Return data for user entered additional pages and extra pages.
2268
  *
 
 
 
2269
  * @return array|mixed|void
2270
  */
2271
  function get_addl_pages() {
2272
  $home = array();
2273
  $home = array(
2274
- 'loc' => get_home_url(),
2275
  'priority' => $this->get_default_priority( 'homepage' ),
2276
  'changefreq' => $this->get_default_frequency( 'homepage' ),
2277
  );
3
  * Sitemap class.
4
  *
5
  * @package All-in-One-SEO-Pack
6
+ * @version 2.3.13
7
  */
8
 
9
  if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
604
  *
605
  * Add in options for status display on settings page, sitemap rewriting on multisite.
606
  *
607
+ * @since 2.3.6
608
+ * @since 2.3.12.3 Refactored to use aioseop_home_url() for compatibility purposes.
609
+ *
610
  * @param $options
611
  *
612
  * @return mixed
618
  if ( isset( $options[ $this->prefix . 'max_posts' ] ) && ( ( $options[ $this->prefix . 'max_posts' ] <= 0 ) || ( $options[ $this->prefix . 'max_posts' ] >= 50000 ) ) ) {
619
  $options[ $this->prefix . 'max_posts' ] = 50000;
620
  }
621
+ $url = aioseop_home_url( '/' . $options[ $this->prefix . 'filename' ] . '.xml' );
622
 
623
  $options[ $this->prefix . 'link' ] = sprintf( __( 'Click here to %s.', 'all-in-one-seo-pack' ), '<a href="' . esc_url( $url ) . '" target="_blank">' . __( 'view your sitemap', 'all-in-one-seo-pack' ) . '</a>' );
624
  $options[ $this->prefix . 'link' ] .= __( ' Your sitemap has been created', 'all-in-one-seo-pack' );
1280
  /**
1281
  * Build a url to the sitemap.
1282
  *
1283
+ * @since 2.3.6
1284
+ * @since 2.3.12.3 Refactored to use aioseop_home_url() for compatibility purposes.
1285
+ *
1286
  * @return string
1287
  */
1288
  function get_sitemap_url() {
1289
+
1290
+ $gz = '';
1291
  if ( $this->options["{$this->prefix}gzipped"] ) {
1292
+ $gz .= '.gz';
1293
  }
1294
+ $url = aioseop_home_url( '/' . $this->options["{$this->prefix}filename"] . ".xml$gz" );
1295
 
1296
  return $url;
1297
  }
1533
  /**
1534
  * Build an index of sitemaps used.
1535
  *
1536
+ * @since 2.3.6
1537
+ * @since 2.3.12.3 Refactored to use aioseop_home_url() for compatibility purposes.
1538
+ *
1539
  * @return array
1540
  */
1541
  function get_sitemap_index_filenames() {
1554
  }
1555
  $options["{$this->prefix}posttypes"] = array_diff( $options["{$this->prefix}posttypes"], array( 'all' ) );
1556
  $options["{$this->prefix}taxonomies"] = array_diff( $options["{$this->prefix}taxonomies"], array( 'all' ) );
1557
+
1558
+ $files[] = array( 'loc' => aioseop_home_url( '/' . $prefix . '_addl' . $suffix ) );
1559
+
1560
  if ( ! empty( $options["{$this->prefix}posttypes"] ) ) {
1561
  $prio = $this->get_default_priority( 'post' );
1562
  $freq = $this->get_default_frequency( 'post' );
1576
  $count = 1;
1577
  for ( $post_count = 0; $post_count < $post_counts[ $sm ]; $post_count += $this->max_posts ) {
1578
  $files[] = array(
1579
+ 'loc' => aioseop_home_url ( '/' . $prefix . '_' . $sm . '_' . ( $count ++ ) . $suffix ),
1580
  'priority' => $prio,
1581
  'changefreq' => $freq,
1582
  );
1583
  }
1584
  } else {
1585
  $files[] = array(
1586
+ 'loc' => aioseop_home_url ( '/' . $prefix . '_' . $sm . $suffix ),
1587
  'priority' => $prio,
1588
  'changefreq' => $freq,
1589
  );
1590
  }
1591
  } else {
1592
  $files[] = array(
1593
+ 'loc' => aioseop_home_url ( '/' . $prefix . '_' . $sm . $suffix ),
1594
  'priority' => $prio,
1595
  'changefreq' => $freq,
1596
  );
1599
  }
1600
  if ( $this->option_isset( 'archive' ) ) {
1601
  $files[] = array(
1602
+ 'loc' => aioseop_home_url ( '/' . $prefix . '_archive' . $suffix ),
1603
  'priority' => $this->get_default_priority( 'archive' ),
1604
  'changefreq' => $this->get_default_frequency( 'archive' ),
1605
  );
1606
  }
1607
  if ( $this->option_isset( 'author' ) ) {
1608
  $files[] = array(
1609
+ 'loc' => aioseop_home_url ( '/' . $prefix . '_author' . $suffix ),
1610
  'priority' => $this->get_default_priority( 'author' ),
1611
  'changefreq' => $this->get_default_frequency( 'author' ),
1612
  );
1621
  $count = 1;
1622
  for ( $tc = 0; $tc < $term_count; $tc += $this->max_posts ) {
1623
  $files[] = array(
1624
+ 'loc' => aioseop_home_url ( '/' . $prefix . '_' . $sm . '_' . ( $count ++ ) . $suffix ),
1625
  'priority' => $this->get_default_priority( 'taxonomies' ),
1626
  'changefreq' => $this->get_default_frequency( 'taxonomies' ),
1627
  );
1628
  }
1629
  } else {
1630
  $files[] = array(
1631
+ 'loc' => aioseop_home_url ( '/' . $prefix . '_' . $sm . $suffix ),
1632
  'priority' => $this->get_default_priority( 'taxonomies' ),
1633
  'changefreq' => $this->get_default_frequency( 'taxonomies' ),
1634
  );
1635
  }
1636
  } else {
1637
  $files[] = array(
1638
+ 'loc' => aioseop_home_url ( '/' . $prefix . '_' . $sm . $suffix ),
1639
  'priority' => $this->get_default_priority( 'taxonomies' ),
1640
  'changefreq' => $this->get_default_frequency( 'taxonomies' ),
1641
  );
1802
  /**
1803
  * Get simple sitemap.
1804
  *
1805
+ * @since 2.3.6
1806
+ * @since 2.3.12.3 Refactored to use aioseop_home_url() for compatibility purposes.
1807
+ *
1808
  * @return array
1809
  */
1810
  function get_simple_sitemap() {
1819
  $prio = $this->get_all_post_priority_data( $options["{$this->prefix}posttypes"] );
1820
 
1821
  $home = array(
1822
+ 'loc' => aioseop_home_url(),
1823
  'priority' => $this->get_default_priority( 'homepage' ),
1824
  'changefreq' => $this->get_default_frequency( 'homepage' ),
1825
  );
1908
  * @see https://semperplugins.com/documentation/aioseop_sitemap_xsl_url/
1909
  *
1910
  * @since 2.3.6
1911
+ * @since 2.3.12.3 Refactored to use aioseop_home_url() for compatibility purposes.
1912
  */
1913
  function get_sitemap_xsl() {
1914
 
1915
+ return esc_url( apply_filters( 'aioseop_sitemap_xsl_url', aioseop_home_url( '/sitemap.xsl' ) ) );
1916
  }
1917
 
1918
  /**
2230
 
2231
  /**
2232
  * Gets additional pages.
 
2233
  * Return data for user entered additional pages.
2234
  *
2235
+ * @since 2.3.6
2236
+ * @since 2.3.12.3 Refactored to use aioseop_home_url() for compatibility purposes.
2237
+ *
2238
  * @return array|mixed|void
2239
  */
2240
  function get_addl_pages_only() {
2241
  $pages = array();
2242
  if ( ! empty( $this->options[ $this->prefix . 'addl_pages' ] ) ) {
2243
+ $siteurl = parse_url( aioseop_home_url() );
2244
  foreach ( $this->options[ $this->prefix . 'addl_pages' ] as $k => $v ) {
2245
  $url = parse_url( $k );
2246
  if ( empty( $url['scheme'] ) ) {
2285
  /**
2286
  * Return data for user entered additional pages and extra pages.
2287
  *
2288
+ * @since 2.3.6
2289
+ * @since 2.3.12.3 Refactored to use aioseop_home_url() for compatibility purposes.
2290
+ *
2291
  * @return array|mixed|void
2292
  */
2293
  function get_addl_pages() {
2294
  $home = array();
2295
  $home = array(
2296
+ 'loc' => aioseop_home_url(),
2297
  'priority' => $this->get_default_priority( 'homepage' ),
2298
  'changefreq' => $this->get_default_frequency( 'homepage' ),
2299
  );
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=mrtor
4
  Tags: seo, all in one seo, google, twitter, page, image seo, social, search engine optimization, sitemap, WordPress SEO, meta, meta description, xml sitemap, google sitemap, sitemaps, robots meta, yahoo, bing, news sitemaps, multisite, canonical, nofollow, noindex, keywords, description, webmaster tools, google webmaster tools, google analytics
5
  Requires at least: 4.0
6
  Tested up to: 4.7
7
- Stable tag: 2.3.12.2.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
4
  Tags: seo, all in one seo, google, twitter, page, image seo, social, search engine optimization, sitemap, WordPress SEO, meta, meta description, xml sitemap, google sitemap, sitemaps, robots meta, yahoo, bing, news sitemaps, multisite, canonical, nofollow, noindex, keywords, description, webmaster tools, google webmaster tools, google analytics
5
  Requires at least: 4.0
6
  Tested up to: 4.7
7
+ Stable tag: 2.3.12.3
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10