SEOPress - Version 4.1.6

Version Description

  • NEW Import your redirect categories when importing redirects from CSV file
  • NEW 'seopress_sitemaps_home_url' hook to filter home_url in XML sitemaps (https://www.seopress.org/support/hooks/filter-home_url-in-xml-sitemaps/)
  • INFO Add a link to find your Google Ads conversion ID (https://www.seopress.org/support/guides/how-to-find-your-google-ads-conversions-id/?utm_source=plugin&utm_medium=wp-admin&utm_campaign=seopress)
  • INFO Add a link to create an automatic FAQ schema with ACF repeater field (https://www.seopress.org/support/guides/create-an-automatic-faq-schema-with-acf-repeater-fields/)
  • INFO Delete 404 errors manually even if enable 404 cleaning CRON is disabled (it was too confusing for the users)
  • FIX Revert: Exclude posts and terms from XML sitemaps if custom canonical URL set from SEO metabox
Download this release

Release Info

Developer rainbowgeek
Plugin Icon 128x128 SEOPress
Version 4.1.6
Comparing to
See all releases

Code changes from version 4.1.5.1 to 4.1.6

inc/admin/admin.php CHANGED
@@ -1062,14 +1062,15 @@ class seopress_options
1062
  <div id="section-import-redirects" class="postbox section-tool">
1063
  <div class="inside">
1064
  <h3><span><?php _e( 'Import Redirections', 'wp-seopress' ); ?></span></h3>
1065
- <p><?php _e( 'Import your own redirections from a .csv file (separator ";"). You must have 6 columns in this order:','wp-seopress'); ?>
1066
  <ul>
1067
  <li><?php _e( 'URL to match (without your domain name)', 'wp-seopress'); ?></li>
1068
  <li><?php _e( 'URL to redirect in absolute,','wp-seopress'); ?></li>
1069
  <li><?php _e( 'type of redirection (301, 302 or 307, 410, 451),','wp-seopress'); ?></li>
1070
  <li><?php _e( 'Yes to enable the redirect (leave it empty to disable the redirect)','wp-seopress'); ?></li>
1071
  <li><?php _e( 'the query parameter without the quotes ("exact_match" = Exact match with all parameters, "without_param" = Exclude all parameters or "with_ignored_param" = Exclude all parameters and pass them to the redirection),', 'wp-seopress' ); ?></li>
1072
- <li><?php _e( 'and, the last parameter, the counter (optional).','wp-seopress'); ?></li>
 
1073
  </ul>
1074
  </p>
1075
  <p>
@@ -1180,7 +1181,6 @@ class seopress_options
1180
  <div class="inside">
1181
  <h3><span><?php _e( 'Clean your 404', 'wp-seopress' ); ?></span></h3>
1182
  <p><?php _e( 'Delete all your 404 errors. We don‘t delete any redirects.', 'wp-seopress' ); ?></p>
1183
- <p><?php echo sprintf(__( 'Make sure you have enabled 404 cleaning from SEO, PRO, <a href="%s">404/301</a> tab to be able to delete all your 404 errors.', 'wp-seopress' ), admin_url( 'admin.php?page=seopress-pro-page#tab=tab_seopress_404' )); ?></p>
1184
  <p class="seopress-help"><?php
1185
  if (function_exists('seopress_get_locale') && seopress_get_locale() =='fr') {
1186
  $seopress_docs_link['support']['redirects']['query'] = 'https://www.seopress.org/fr/support/guides/nettoyez-vos-erreurs-404-a-laide-dune-requete-mysql/?utm_source=plugin&utm_medium=wp-admin&utm_campaign=seopress';
@@ -5309,7 +5309,11 @@ class seopress_options
5309
  '<input type="text" name="seopress_google_analytics_option_name[seopress_google_analytics_optimize]" placeholder="'.esc_html__('Enter your Google Optimize container ID','wp-seopress').'" value="%s" aria-label="'.__('GTM-XXXXXXX','wp-seopress').'"/>',
5310
  esc_html($check));
5311
 
5312
- echo '<p class="description">'.__('Google Optimize offers A/B testing, website testing & personalization tools.','wp-seopress').' <a class="seopress-help" href="https://marketingplatform.google.com/about/optimize/" target="_blank">'.__('Learn more','wp-seopress').'</a><span class="seopress-help dashicons dashicons-external"></span></p>';
 
 
 
 
5313
  }
5314
 
5315
  public function seopress_google_analytics_ads_callback()
@@ -5319,6 +5323,19 @@ class seopress_options
5319
  printf(
5320
  '<input type="text" name="seopress_google_analytics_option_name[seopress_google_analytics_ads]" placeholder="'.esc_html__('Enter your Google Ads conversion ID (eg: AW-123456789)','wp-seopress').'" value="%s" aria-label="'.__('AW-XXXXXXXXX','wp-seopress').'"/>',
5321
  esc_html($check));
 
 
 
 
 
 
 
 
 
 
 
 
 
5322
  }
5323
 
5324
  public function seopress_google_analytics_other_tracking_callback()
1062
  <div id="section-import-redirects" class="postbox section-tool">
1063
  <div class="inside">
1064
  <h3><span><?php _e( 'Import Redirections', 'wp-seopress' ); ?></span></h3>
1065
+ <p><?php _e( 'Import your own redirections from a .csv file (separator ";"). You must have these columns in this order:','wp-seopress'); ?>
1066
  <ul>
1067
  <li><?php _e( 'URL to match (without your domain name)', 'wp-seopress'); ?></li>
1068
  <li><?php _e( 'URL to redirect in absolute,','wp-seopress'); ?></li>
1069
  <li><?php _e( 'type of redirection (301, 302 or 307, 410, 451),','wp-seopress'); ?></li>
1070
  <li><?php _e( 'Yes to enable the redirect (leave it empty to disable the redirect)','wp-seopress'); ?></li>
1071
  <li><?php _e( 'the query parameter without the quotes ("exact_match" = Exact match with all parameters, "without_param" = Exclude all parameters or "with_ignored_param" = Exclude all parameters and pass them to the redirection),', 'wp-seopress' ); ?></li>
1072
+ <li><?php _e( 'the counter (optional),','wp-seopress'); ?></li>
1073
+ <li><?php _e( 'and, the last parameter, category redirect IDs separated by commas (optional).','wp-seopress'); ?></li>
1074
  </ul>
1075
  </p>
1076
  <p>
1181
  <div class="inside">
1182
  <h3><span><?php _e( 'Clean your 404', 'wp-seopress' ); ?></span></h3>
1183
  <p><?php _e( 'Delete all your 404 errors. We don‘t delete any redirects.', 'wp-seopress' ); ?></p>
 
1184
  <p class="seopress-help"><?php
1185
  if (function_exists('seopress_get_locale') && seopress_get_locale() =='fr') {
1186
  $seopress_docs_link['support']['redirects']['query'] = 'https://www.seopress.org/fr/support/guides/nettoyez-vos-erreurs-404-a-laide-dune-requete-mysql/?utm_source=plugin&utm_medium=wp-admin&utm_campaign=seopress';
5309
  '<input type="text" name="seopress_google_analytics_option_name[seopress_google_analytics_optimize]" placeholder="'.esc_html__('Enter your Google Optimize container ID','wp-seopress').'" value="%s" aria-label="'.__('GTM-XXXXXXX','wp-seopress').'"/>',
5310
  esc_html($check));
5311
 
5312
+ echo '<p class="description">'.__('Google Optimize offers A/B testing, website testing & personalization tools.','wp-seopress').'
5313
+ <a class="seopress-help" href="https://marketingplatform.google.com/about/optimize/" target="_blank">
5314
+ '.__('Learn more','wp-seopress').'
5315
+ </a>
5316
+ <span class="seopress-help dashicons dashicons-external"></span></p>';
5317
  }
5318
 
5319
  public function seopress_google_analytics_ads_callback()
5323
  printf(
5324
  '<input type="text" name="seopress_google_analytics_option_name[seopress_google_analytics_ads]" placeholder="'.esc_html__('Enter your Google Ads conversion ID (eg: AW-123456789)','wp-seopress').'" value="%s" aria-label="'.__('AW-XXXXXXXXX','wp-seopress').'"/>',
5325
  esc_html($check));
5326
+
5327
+ if (function_exists('seopress_get_locale') && seopress_get_locale() =='fr') {
5328
+ $seopress_docs_link['support']['analytics']['gads'] = 'https://www.seopress.org/fr/support/guides/trouver-votre-id-de-conversion-google-ads/?utm_source=plugin&utm_medium=wp-admin&utm_campaign=seopress';
5329
+ } else {
5330
+ $seopress_docs_link['support']['analytics']['gads'] = 'https://www.seopress.org/support/guides/how-to-find-your-google-ads-conversions-id/?utm_source=plugin&utm_medium=wp-admin&utm_campaign=seopress';
5331
+ }
5332
+
5333
+ echo '<p class="description">
5334
+ <a class="seopress-help" href="'.$seopress_docs_link['support']['analytics']['gads'].'" target="_blank">
5335
+ '. __('Learn how to find your Google Ads Conversion ID','wp-seopress').'
5336
+ </a>
5337
+ <span class="seopress-help dashicons dashicons-external"></span></p>';
5338
+
5339
  }
5340
 
5341
  public function seopress_google_analytics_other_tracking_callback()
inc/functions/options-import-export.php CHANGED
@@ -176,6 +176,13 @@ function seopress_import_redirections_settings() {
176
  }
177
  }
178
 
 
 
 
 
 
 
 
179
  if (!empty($csv_line[0])) {
180
  $count = NULL;
181
  if (!empty($csv_line[5])) {
@@ -191,9 +198,14 @@ function seopress_import_redirections_settings() {
191
  '_seopress_redirections_enabled' => $csv_type_redirects[3],
192
  '_seopress_redirections_param' => $csv_type_redirects[4],
193
  'seopress_404_count' => $count
194
- ]
195
  ]
196
  );
 
 
 
 
 
197
  }
198
  }
199
 
@@ -298,6 +310,11 @@ function seopress_export_redirections_settings() {
298
  if ( $seopress_redirects_query->have_posts() ) {
299
  while ( $seopress_redirects_query->have_posts() ) {
300
  $seopress_redirects_query->the_post();
 
 
 
 
 
301
  $redirects_html .= '"'.urldecode(urlencode(esc_attr(wp_filter_nohtml_kses(get_the_title())))).'"';
302
  $redirects_html .= ';';
303
  $redirects_html .= '"'.urldecode(urlencode(esc_attr(wp_filter_nohtml_kses(get_post_meta(get_the_ID(),'_seopress_redirections_value',true))))).'"';
@@ -309,6 +326,8 @@ function seopress_export_redirections_settings() {
309
  $redirects_html .= get_post_meta(get_the_ID(),'_seopress_redirections_param',true);
310
  $redirects_html .= ';';
311
  $redirects_html .= get_post_meta(get_the_ID(),'seopress_404_count',true);
 
 
312
  $redirects_html .= "\n";
313
  }
314
  wp_reset_postdata();
@@ -553,7 +572,7 @@ function seopress_clean_404() {
553
  }
554
 
555
  add_filter('seopress_404_cleaning_query', 'seopress_clean_404_query_hook');
556
- do_action('seopress_404_cron_cleaning');
557
  wp_safe_redirect( admin_url( 'edit.php?post_type=seopress_404' ) );
558
  exit;
559
  }
176
  }
177
  }
178
 
179
+ //Seventh column: redirect categories
180
+ if (!empty($csv_line[6])) {
181
+ $cats = array_values(explode(',',$csv_line[6]));
182
+ $cats = array_map( 'intval', $cats );
183
+ $cats = array_unique( $cats );
184
+ }
185
+
186
  if (!empty($csv_line[0])) {
187
  $count = NULL;
188
  if (!empty($csv_line[5])) {
198
  '_seopress_redirections_enabled' => $csv_type_redirects[3],
199
  '_seopress_redirections_param' => $csv_type_redirects[4],
200
  'seopress_404_count' => $count
201
+ ],
202
  ]
203
  );
204
+
205
+ //Assign terms
206
+ if (!empty($csv_line[6])) {
207
+ wp_set_object_terms( $id, $cats, 'seopress_404_cat' );
208
+ }
209
  }
210
  }
211
 
310
  if ( $seopress_redirects_query->have_posts() ) {
311
  while ( $seopress_redirects_query->have_posts() ) {
312
  $seopress_redirects_query->the_post();
313
+
314
+ $redirect_categories = get_the_terms( get_the_ID(), 'seopress_404_cat' );
315
+ $redirect_categories = '"'.join(', ', wp_list_pluck($redirect_categories, 'term_id')).'"';
316
+
317
+
318
  $redirects_html .= '"'.urldecode(urlencode(esc_attr(wp_filter_nohtml_kses(get_the_title())))).'"';
319
  $redirects_html .= ';';
320
  $redirects_html .= '"'.urldecode(urlencode(esc_attr(wp_filter_nohtml_kses(get_post_meta(get_the_ID(),'_seopress_redirections_value',true))))).'"';
326
  $redirects_html .= get_post_meta(get_the_ID(),'_seopress_redirections_param',true);
327
  $redirects_html .= ';';
328
  $redirects_html .= get_post_meta(get_the_ID(),'seopress_404_count',true);
329
+ $redirects_html .= ";";
330
+ $redirects_html .= $redirect_categories;
331
  $redirects_html .= "\n";
332
  }
333
  wp_reset_postdata();
572
  }
573
 
574
  add_filter('seopress_404_cleaning_query', 'seopress_clean_404_query_hook');
575
+ do_action('seopress_404_cron_cleaning', true);
576
  wp_safe_redirect( admin_url( 'edit.php?post_type=seopress_404' ) );
577
  exit;
578
  }
inc/functions/options-redirections.php CHANGED
@@ -67,7 +67,7 @@ function seopress_redirections_value() {
67
  $seopress_redirections_value = basename(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
68
  $seopress_redirections_query = new WP_Query( array(
69
  'post_type' => 'seopress_404',
70
- 'posts_per_page' => '-1',
71
  'update_post_term_cache' => false, // don't retrieve post terms
72
  'update_post_meta_cache' => false, // don't retrieve post meta
73
  )
67
  $seopress_redirections_value = basename(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
68
  $seopress_redirections_query = new WP_Query( array(
69
  'post_type' => 'seopress_404',
70
+ 'posts_per_page' => '-1',
71
  'update_post_term_cache' => false, // don't retrieve post terms
72
  'update_post_meta_cache' => false, // don't retrieve post meta
73
  )
inc/functions/sitemap/template-xml-sitemaps-author.php CHANGED
@@ -22,6 +22,8 @@ function seopress_xml_sitemap_author() {
22
  $home_url = site_url().'/';
23
  }
24
 
 
 
25
  $seopress_sitemaps = '<?xml version="1.0" encoding="UTF-8"?>';
26
  $seopress_sitemaps .='<?xml-stylesheet type="text/xsl" href="'.$home_url.'sitemaps_xsl.xsl"?>';
27
  $seopress_sitemaps .= "\n";
22
  $home_url = site_url().'/';
23
  }
24
 
25
+ $home_url = apply_filters( 'seopress_sitemaps_home_url', $home_url );
26
+
27
  $seopress_sitemaps = '<?xml version="1.0" encoding="UTF-8"?>';
28
  $seopress_sitemaps .='<?xml-stylesheet type="text/xsl" href="'.$home_url.'sitemaps_xsl.xsl"?>';
29
  $seopress_sitemaps .= "\n";
inc/functions/sitemap/template-xml-sitemaps-single-term.php CHANGED
@@ -46,6 +46,8 @@ function seopress_xml_sitemap_single_term() {
46
  $home_url = site_url().'/';
47
  }
48
 
 
 
49
  $seopress_sitemaps = '<?xml version="1.0" encoding="UTF-8"?>';
50
  $seopress_sitemaps .='<?xml-stylesheet type="text/xsl" href="'.$home_url.'sitemaps_xsl.xsl"?>';
51
  $seopress_sitemaps .= "\n";
46
  $home_url = site_url().'/';
47
  }
48
 
49
+ $home_url = apply_filters( 'seopress_sitemaps_home_url', $home_url );
50
+
51
  $seopress_sitemaps = '<?xml version="1.0" encoding="UTF-8"?>';
52
  $seopress_sitemaps .='<?xml-stylesheet type="text/xsl" href="'.$home_url.'sitemaps_xsl.xsl"?>';
53
  $seopress_sitemaps .= "\n";
inc/functions/sitemap/template-xml-sitemaps-single.php CHANGED
@@ -58,6 +58,8 @@ function seopress_xml_sitemap_single() {
58
  $home_url = site_url().'/';
59
  }
60
 
 
 
61
  $seopress_sitemaps = '<?xml version="1.0" encoding="UTF-8"?>';
62
  $seopress_sitemaps .='<?xml-stylesheet type="text/xsl" href="'.$home_url.'sitemaps_xsl.xsl"?>';
63
  $seopress_sitemaps .= "\n";
@@ -104,35 +106,19 @@ function seopress_xml_sitemap_single() {
104
  'post_type' => $path,
105
  'post_status' => 'publish',
106
  'meta_query' =>
 
 
 
 
 
 
 
107
  [
108
- 'relation' => 'AND',
109
- [
110
- 'relation' => 'OR',
111
- [
112
- 'key' => '_seopress_robots_index',
113
- 'value' => '',
114
- 'compare' => 'NOT EXISTS'
115
- ],
116
- [
117
- 'key' => '_seopress_robots_index',
118
- 'value' => 'yes',
119
- 'compare' => '!='
120
- ],
121
- ],
122
- [
123
- 'relation' => 'OR',
124
- [
125
- 'key' => '_seopress_robots_canonical',
126
- 'value' => '',
127
- 'compare' => 'NOT EXISTS'
128
- ],
129
- [
130
- 'key' => '_seopress_robots_canonical',
131
- 'value' => '',
132
- 'compare' => '='
133
- ],
134
- ],
135
  ],
 
136
  'fields' => 'ids',
137
  'lang' => '',
138
  'has_password' => false
58
  $home_url = site_url().'/';
59
  }
60
 
61
+ $home_url = apply_filters( 'seopress_sitemaps_home_url', $home_url );
62
+
63
  $seopress_sitemaps = '<?xml version="1.0" encoding="UTF-8"?>';
64
  $seopress_sitemaps .='<?xml-stylesheet type="text/xsl" href="'.$home_url.'sitemaps_xsl.xsl"?>';
65
  $seopress_sitemaps .= "\n";
106
  'post_type' => $path,
107
  'post_status' => 'publish',
108
  'meta_query' =>
109
+ [
110
+ 'relation' => 'OR',
111
+ [
112
+ 'key' => '_seopress_robots_index',
113
+ 'value' => '',
114
+ 'compare' => 'NOT EXISTS'
115
+ ],
116
  [
117
+ 'key' => '_seopress_robots_index',
118
+ 'value' => 'yes',
119
+ 'compare' => '!='
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
120
  ],
121
+ ],
122
  'fields' => 'ids',
123
  'lang' => '',
124
  'has_password' => false
inc/functions/sitemap/template-xml-sitemaps.php CHANGED
@@ -35,7 +35,9 @@ function seopress_xml_sitemap_index() {
35
 
36
  if (function_exists('pll_home_url')) {
37
  $home_url = site_url().'/';
38
- }
 
 
39
 
40
  $seopress_sitemaps ='<?xml version="1.0" encoding="UTF-8"?>';
41
  $seopress_sitemaps .='<?xml-stylesheet type="text/xsl" href="'.$home_url.'sitemaps_xsl.xsl"?>';
@@ -53,32 +55,16 @@ function seopress_xml_sitemap_index() {
53
  'post_status' => 'publish',
54
  'meta_query' =>
55
  [
56
- 'relation' => 'AND',
57
  [
58
- 'relation' => 'OR',
59
- [
60
- 'key' => '_seopress_robots_index',
61
- 'value' => '',
62
- 'compare' => 'NOT EXISTS'
63
- ],
64
- [
65
- 'key' => '_seopress_robots_index',
66
- 'value' => 'yes',
67
- 'compare' => '!='
68
- ],
69
  ],
70
  [
71
- 'relation' => 'OR',
72
- [
73
- 'key' => '_seopress_robots_canonical',
74
- 'value' => '',
75
- 'compare' => 'NOT EXISTS'
76
- ],
77
- [
78
- 'key' => '_seopress_robots_canonical',
79
- 'value' => '',
80
- 'compare' => '='
81
- ],
82
  ],
83
  ],
84
  'fields' => 'ids',
@@ -135,8 +121,6 @@ function seopress_xml_sitemap_index() {
135
  'ignore_sticky_posts' => true,
136
  'posts_per_page' => 1,
137
  'meta_query' =>
138
- [
139
- 'relation' => 'AND',
140
  [
141
  'relation' => 'OR',
142
  [
@@ -150,20 +134,6 @@ function seopress_xml_sitemap_index() {
150
  'compare' => '!='
151
  ],
152
  ],
153
- [
154
- 'relation' => 'OR',
155
- [
156
- 'key' => '_seopress_robots_canonical',
157
- 'value' => '',
158
- 'compare' => 'NOT EXISTS'
159
- ],
160
- [
161
- 'key' => '_seopress_robots_canonical',
162
- 'value' => '',
163
- 'compare' => '='
164
- ],
165
- ],
166
- ],
167
  'order' => 'DESC',
168
  'orderby' => 'modified',
169
  'lang' => '',
@@ -203,32 +173,16 @@ function seopress_xml_sitemap_index() {
203
  'fields' => 'ids',
204
  'meta_query' =>
205
  [
206
- 'relation' => 'AND',
207
  [
208
- 'relation' => 'OR',
209
- [
210
- 'key' => '_seopress_robots_index',
211
- 'value' => '',
212
- 'compare' => 'NOT EXISTS'
213
- ],
214
- [
215
- 'key' => '_seopress_robots_index',
216
- 'value' => 'yes',
217
- 'compare' => '!='
218
- ],
219
  ],
220
  [
221
- 'relation' => 'OR',
222
- [
223
- 'key' => '_seopress_robots_canonical',
224
- 'value' => '',
225
- 'compare' => 'NOT EXISTS'
226
- ],
227
- [
228
- 'key' => '_seopress_robots_canonical',
229
- 'value' => '',
230
- 'compare' => '='
231
- ],
232
  ],
233
  ],
234
  ];
35
 
36
  if (function_exists('pll_home_url')) {
37
  $home_url = site_url().'/';
38
+ }
39
+
40
+ $home_url = apply_filters( 'seopress_sitemaps_home_url', $home_url );
41
 
42
  $seopress_sitemaps ='<?xml version="1.0" encoding="UTF-8"?>';
43
  $seopress_sitemaps .='<?xml-stylesheet type="text/xsl" href="'.$home_url.'sitemaps_xsl.xsl"?>';
55
  'post_status' => 'publish',
56
  'meta_query' =>
57
  [
58
+ 'relation' => 'OR',
59
  [
60
+ 'key' => '_seopress_robots_index',
61
+ 'value' => '',
62
+ 'compare' => 'NOT EXISTS'
 
 
 
 
 
 
 
 
63
  ],
64
  [
65
+ 'key' => '_seopress_robots_index',
66
+ 'value' => 'yes',
67
+ 'compare' => '!='
 
 
 
 
 
 
 
 
68
  ],
69
  ],
70
  'fields' => 'ids',
121
  'ignore_sticky_posts' => true,
122
  'posts_per_page' => 1,
123
  'meta_query' =>
 
 
124
  [
125
  'relation' => 'OR',
126
  [
134
  'compare' => '!='
135
  ],
136
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
137
  'order' => 'DESC',
138
  'orderby' => 'modified',
139
  'lang' => '',
173
  'fields' => 'ids',
174
  'meta_query' =>
175
  [
176
+ 'relation' => 'OR',
177
  [
178
+ 'key' => '_seopress_robots_index',
179
+ 'value' => '',
180
+ 'compare' => 'NOT EXISTS'
 
 
 
 
 
 
 
 
181
  ],
182
  [
183
+ 'key' => '_seopress_robots_index',
184
+ 'value' => 'yes',
185
+ 'compare' => '!='
 
 
 
 
 
 
 
 
186
  ],
187
  ],
188
  ];
readme.txt CHANGED
@@ -6,7 +6,7 @@ Tags: SEO, XML sitemap, meta title, open graph, content analysis, knowledge grap
6
  Requires at least: 4.7+
7
  Tested up to: 5.5
8
  Requires PHP: 5.6
9
- Stable tag: 4.1.5.1
10
  License: GPLv2 or later
11
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
12
 
@@ -310,6 +310,13 @@ You're theme is probably using a deprecated function to handle the title. <a hre
310
  8. Installation Wizard
311
 
312
  == Changelog ==
 
 
 
 
 
 
 
313
  = 4.1.5.1 =
314
  * FIX DomDocument issue if "Automatically set the image Alt text from target keywords option" is enabled
315
  = 4.1.5 =
6
  Requires at least: 4.7+
7
  Tested up to: 5.5
8
  Requires PHP: 5.6
9
+ Stable tag: 4.1.6
10
  License: GPLv2 or later
11
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
12
 
310
  8. Installation Wizard
311
 
312
  == Changelog ==
313
+ = 4.1.6 =
314
+ * NEW Import your redirect categories when importing redirects from CSV file
315
+ * NEW 'seopress_sitemaps_home_url' hook to filter home_url in XML sitemaps (https://www.seopress.org/support/hooks/filter-home_url-in-xml-sitemaps/)
316
+ * INFO Add a link to find your Google Ads conversion ID (https://www.seopress.org/support/guides/how-to-find-your-google-ads-conversions-id/?utm_source=plugin&utm_medium=wp-admin&utm_campaign=seopress)
317
+ * INFO Add a link to create an automatic FAQ schema with ACF repeater field (https://www.seopress.org/support/guides/create-an-automatic-faq-schema-with-acf-repeater-fields/)
318
+ * INFO Delete 404 errors manually even if enable 404 cleaning CRON is disabled (it was too confusing for the users)
319
+ * FIX Revert: Exclude posts and terms from XML sitemaps if custom canonical URL set from SEO metabox
320
  = 4.1.5.1 =
321
  * FIX DomDocument issue if "Automatically set the image Alt text from target keywords option" is enabled
322
  = 4.1.5 =
seopress.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: SEOPress
4
  Plugin URI: https://www.seopress.org/
5
  Description: One of the best SEO plugins for WordPress.
6
- Version: 4.1.5.1
7
  Author: SEOPress
8
  Author URI: https://www.seopress.org/
9
  License: GPLv2
@@ -55,7 +55,7 @@ register_deactivation_hook(__FILE__, 'seopress_deactivation');
55
  ///////////////////////////////////////////////////////////////////////////////////////////////////
56
  //Define
57
  ///////////////////////////////////////////////////////////////////////////////////////////////////
58
- define( 'SEOPRESS_VERSION', '4.1.5.1' );
59
  define( 'SEOPRESS_AUTHOR', 'Benjamin Denis' );
60
 
61
  ///////////////////////////////////////////////////////////////////////////////////////////////////
3
  Plugin Name: SEOPress
4
  Plugin URI: https://www.seopress.org/
5
  Description: One of the best SEO plugins for WordPress.
6
+ Version: 4.1.6
7
  Author: SEOPress
8
  Author URI: https://www.seopress.org/
9
  License: GPLv2
55
  ///////////////////////////////////////////////////////////////////////////////////////////////////
56
  //Define
57
  ///////////////////////////////////////////////////////////////////////////////////////////////////
58
+ define( 'SEOPRESS_VERSION', '4.1.6' );
59
  define( 'SEOPRESS_AUTHOR', 'Benjamin Denis' );
60
 
61
  ///////////////////////////////////////////////////////////////////////////////////////////////////