SEOPress - Version 3.6.4

Version Description

  • NEW Add 'seopress_bot_query' hook to filter the broken links checker query
  • INFO Relevanssi users: posts marked as noindex are no longer indexed by default (Relevanssi 4.3.2 required)
  • INFO Updated Chart JS library
  • FIX primary category in XML sitemaps
  • FIX meta robots / canonical tags for static blog page
  • FIX Breadcrumbs with before / after HTML hooks (thanks to @wpchannel)
Download this release

Release Info

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

Code changes from version 3.6.3 to 3.6.4

inc/functions/options-titles-metas.php CHANGED
@@ -794,6 +794,8 @@ function seopress_titles_noindex_bypass() {
794
$seopress_titles_noindex = seopress_titles_single_cpt_noindex_option();
795
} elseif (is_singular() && seopress_titles_noindex_post_option() ) { //Single CPT Metaboxe
796
$seopress_titles_noindex = seopress_titles_noindex_post_option();
797
} elseif (is_post_type_archive() && seopress_titles_archive_cpt_noindex_option() ) { //IS POST TYPE ARCHIVE
798
$seopress_titles_noindex = seopress_titles_archive_cpt_noindex_option();
799
} elseif ((is_tax() || is_category() || is_tag()) && seopress_titles_tax_noindex_option()) { //IS TAX
@@ -899,6 +901,8 @@ function seopress_titles_nofollow_bypass() {
899
$seopress_titles_nofollow = seopress_titles_single_cpt_nofollow_option();
900
} elseif (is_singular() && seopress_titles_nofollow_post_option() ) { //Single CPT Metaboxe
901
$seopress_titles_nofollow = seopress_titles_nofollow_post_option();
902
} elseif (is_post_type_archive() && seopress_titles_archive_cpt_nofollow_option() ) { //IS POST TYPE ARCHIVE
903
$seopress_titles_nofollow = seopress_titles_archive_cpt_nofollow_option();
904
} elseif ((is_tax() || is_category() || is_tag()) && seopress_titles_tax_nofollow_option()) { //IS TAX
@@ -1008,6 +1012,8 @@ function seopress_titles_noodp_bypass() {
1008
}
1009
elseif (is_singular() && seopress_titles_noodp_post_option()) {
1010
return seopress_titles_noodp_post_option();
1011
} elseif (is_tax() || is_category() || is_tag()) {
1012
if (get_term_meta(get_queried_object()->{'term_id'},'_seopress_robots_odp',true) == 'yes') {
1013
return get_term_meta(get_queried_object()->{'term_id'},'_seopress_robots_odp',true);
@@ -1037,9 +1043,10 @@ function seopress_titles_noarchive_post_option() {
1037
function seopress_titles_noarchive_bypass() {
1038
if (seopress_titles_noarchive_option()) {
1039
return seopress_titles_noarchive_option();
1040
- }
1041
- elseif (is_singular() && seopress_titles_noarchive_post_option()) {
1042
return seopress_titles_noarchive_post_option();
1043
} elseif (is_tax() || is_category() || is_tag()) {
1044
if (get_term_meta(get_queried_object()->{'term_id'},'_seopress_robots_archive',true) == 'yes') {
1045
return get_term_meta(get_queried_object()->{'term_id'},'_seopress_robots_archive',true);
@@ -1053,9 +1060,9 @@ function seopress_titles_nosnippet_option() {
1053
if ( ! empty ( $seopress_titles_nosnippet_option ) ) {
1054
foreach ($seopress_titles_nosnippet_option as $key => $seopress_titles_nosnippet_value)
1055
$options[$key] = $seopress_titles_nosnippet_value;
1056
- if (isset($seopress_titles_nosnippet_option['seopress_titles_nosnippet'])) {
1057
- return $seopress_titles_nosnippet_option['seopress_titles_nosnippet'];
1058
- }
1059
}
1060
};
1061
@@ -1069,9 +1076,10 @@ function seopress_titles_nosnippet_post_option() {
1069
function seopress_titles_nosnippet_bypass() {
1070
if (seopress_titles_nosnippet_option()) {
1071
return seopress_titles_nosnippet_option();
1072
- }
1073
- elseif (is_singular() && seopress_titles_nosnippet_post_option()) {
1074
return seopress_titles_nosnippet_post_option();
1075
} elseif (is_tax() || is_category() || is_tag()) {
1076
if (get_term_meta(get_queried_object()->{'term_id'},'_seopress_robots_snippet',true) == 'yes') {
1077
return get_term_meta(get_queried_object()->{'term_id'},'_seopress_robots_snippet',true);
@@ -1252,6 +1260,16 @@ if (function_exists('seopress_titles_noindex_bypass') && seopress_titles_noindex
1252
echo $seopress_titles_canonical."\n";
1253
}
1254
add_action( 'wp_head', 'seopress_titles_canonical_post_hook', 1 );
1255
} elseif ((is_tax() || is_category() || is_tag()) && seopress_titles_canonical_term_option()) { //CUSTOM TERM CANONICAL
1256
function seopress_titles_canonical_term_hook() {
1257
$seopress_titles_canonical = '<link rel="canonical" href="'.htmlspecialchars(urldecode(seopress_titles_canonical_term_option())).'" />';
794
$seopress_titles_noindex = seopress_titles_single_cpt_noindex_option();
795
} elseif (is_singular() && seopress_titles_noindex_post_option() ) { //Single CPT Metaboxe
796
$seopress_titles_noindex = seopress_titles_noindex_post_option();
797
+ } elseif ( is_home() && get_post_meta(get_option( 'page_for_posts' ),'_seopress_robots_index',true) !=''){ //BLOG PAGE
798
+ $seopress_titles_noindex = get_post_meta(get_option( 'page_for_posts' ),'_seopress_robots_index',true);
799
} elseif (is_post_type_archive() && seopress_titles_archive_cpt_noindex_option() ) { //IS POST TYPE ARCHIVE
800
$seopress_titles_noindex = seopress_titles_archive_cpt_noindex_option();
801
} elseif ((is_tax() || is_category() || is_tag()) && seopress_titles_tax_noindex_option()) { //IS TAX
901
$seopress_titles_nofollow = seopress_titles_single_cpt_nofollow_option();
902
} elseif (is_singular() && seopress_titles_nofollow_post_option() ) { //Single CPT Metaboxe
903
$seopress_titles_nofollow = seopress_titles_nofollow_post_option();
904
+ } elseif ( is_home() && get_post_meta(get_option( 'page_for_posts' ),'_seopress_robots_follow',true) !=''){ //BLOG PAGE
905
+ $seopress_titles_nofollow = get_post_meta(get_option( 'page_for_posts' ),'_seopress_robots_follow',true);
906
} elseif (is_post_type_archive() && seopress_titles_archive_cpt_nofollow_option() ) { //IS POST TYPE ARCHIVE
907
$seopress_titles_nofollow = seopress_titles_archive_cpt_nofollow_option();
908
} elseif ((is_tax() || is_category() || is_tag()) && seopress_titles_tax_nofollow_option()) { //IS TAX
1012
}
1013
elseif (is_singular() && seopress_titles_noodp_post_option()) {
1014
return seopress_titles_noodp_post_option();
1015
+ } elseif ( is_home() && get_post_meta(get_option( 'page_for_posts' ),'_seopress_robots_odp',true) !=''){ //BLOG PAGE
1016
+ return get_post_meta(get_option( 'page_for_posts' ),'_seopress_robots_odp',true);
1017
} elseif (is_tax() || is_category() || is_tag()) {
1018
if (get_term_meta(get_queried_object()->{'term_id'},'_seopress_robots_odp',true) == 'yes') {
1019
return get_term_meta(get_queried_object()->{'term_id'},'_seopress_robots_odp',true);
1043
function seopress_titles_noarchive_bypass() {
1044
if (seopress_titles_noarchive_option()) {
1045
return seopress_titles_noarchive_option();
1046
+ } elseif (is_singular() && seopress_titles_noarchive_post_option()) {
1047
return seopress_titles_noarchive_post_option();
1048
+ } elseif ( is_home() && get_post_meta(get_option( 'page_for_posts' ),'_seopress_robots_archive',true) !=''){ //BLOG PAGE
1049
+ return get_post_meta(get_option( 'page_for_posts' ),'_seopress_robots_archive',true);
1050
} elseif (is_tax() || is_category() || is_tag()) {
1051
if (get_term_meta(get_queried_object()->{'term_id'},'_seopress_robots_archive',true) == 'yes') {
1052
return get_term_meta(get_queried_object()->{'term_id'},'_seopress_robots_archive',true);
1060
if ( ! empty ( $seopress_titles_nosnippet_option ) ) {
1061
foreach ($seopress_titles_nosnippet_option as $key => $seopress_titles_nosnippet_value)
1062
$options[$key] = $seopress_titles_nosnippet_value;
1063
+ if (isset($seopress_titles_nosnippet_option['seopress_titles_nosnippet'])) {
1064
+ return $seopress_titles_nosnippet_option['seopress_titles_nosnippet'];
1065
+ }
1066
}
1067
};
1068
1076
function seopress_titles_nosnippet_bypass() {
1077
if (seopress_titles_nosnippet_option()) {
1078
return seopress_titles_nosnippet_option();
1079
+ } elseif (is_singular() && seopress_titles_nosnippet_post_option()) {
1080
return seopress_titles_nosnippet_post_option();
1081
+ } elseif ( is_home() && get_post_meta(get_option( 'page_for_posts' ),'_seopress_robots_snippet',true) !=''){ //BLOG PAGE
1082
+ return get_post_meta(get_option( 'page_for_posts' ),'_seopress_robots_snippet',true);
1083
} elseif (is_tax() || is_category() || is_tag()) {
1084
if (get_term_meta(get_queried_object()->{'term_id'},'_seopress_robots_snippet',true) == 'yes') {
1085
return get_term_meta(get_queried_object()->{'term_id'},'_seopress_robots_snippet',true);
1260
echo $seopress_titles_canonical."\n";
1261
}
1262
add_action( 'wp_head', 'seopress_titles_canonical_post_hook', 1 );
1263
+ } elseif ( is_home() && get_post_meta(get_option( 'page_for_posts' ),'_seopress_robots_canonical',true) !=''){ //BLOG PAGE
1264
+ function seopress_titles_canonical_post_hook() {
1265
+ $seopress_titles_canonical = '<link rel="canonical" href="'.htmlspecialchars(urldecode(get_post_meta(get_option( 'page_for_posts' ),'_seopress_robots_canonical',true))).'" />';
1266
+ //Hook on post canonical URL - 'seopress_titles_canonical'
1267
+ if (has_filter('seopress_titles_canonical')) {
1268
+ $seopress_titles_canonical = apply_filters('seopress_titles_canonical', $seopress_titles_canonical);
1269
+ }
1270
+ echo $seopress_titles_canonical."\n";
1271
+ }
1272
+ add_action( 'wp_head', 'seopress_titles_canonical_post_hook', 1 );
1273
} elseif ((is_tax() || is_category() || is_tag()) && seopress_titles_canonical_term_option()) { //CUSTOM TERM CANONICAL
1274
function seopress_titles_canonical_term_hook() {
1275
$seopress_titles_canonical = '<link rel="canonical" href="'.htmlspecialchars(urldecode(seopress_titles_canonical_term_option())).'" />';
inc/functions/sitemap/template-xml-sitemaps-single.php CHANGED
@@ -4,6 +4,9 @@ defined( 'ABSPATH' ) or die( 'Please don&rsquo;t call the plugin directly. Thank
4
//XML
5
Header('Content-type: text/xml');
6
7
//WPML
8
function seopress_remove_wpml_home_url_filter( $home_url, $url, $path, $orig_scheme, $blog_id ) {
9
return $url;
4
//XML
5
Header('Content-type: text/xml');
6
7
+ //Remove primary category
8
+ remove_filter( 'post_link_category', 'seopress_titles_primary_cat_hook', 10, 3 );
9
+
10
//WPML
11
function seopress_remove_wpml_home_url_filter( $home_url, $url, $path, $orig_scheme, $blog_id ) {
12
return $url;
readme.txt CHANGED
@@ -6,7 +6,7 @@ Tags: SEO, XML sitemap, meta title, open graph, content analysis, knowledge grap
6
Requires at least: 4.6+
7
Tested up to: 5.2
8
Requires PHP: 5.6
9
- Stable tag: 3.6.3
10
License: GPLv2 or later
11
License URI: https://www.gnu.org/licenses/gpl-2.0.html
12
@@ -219,6 +219,13 @@ Any questions? Visit our website <a href="https://www.seopress.org?utm_source=w.
219
60. Installation Wizard
220
221
== Changelog ==
222
= 3.6.3 =
223
* INFO Improve code quality
224
* INFO Improve security
6
Requires at least: 4.6+
7
Tested up to: 5.2
8
Requires PHP: 5.6
9
+ Stable tag: 3.6.4
10
License: GPLv2 or later
11
License URI: https://www.gnu.org/licenses/gpl-2.0.html
12
219
60. Installation Wizard
220
221
== Changelog ==
222
+ = 3.6.4 =
223
+ * NEW Add 'seopress_bot_query' hook to filter the broken links checker query
224
+ * INFO Relevanssi users: posts marked as noindex are no longer indexed by default (Relevanssi 4.3.2 required)
225
+ * INFO Updated Chart JS library
226
+ * FIX primary category in XML sitemaps
227
+ * FIX meta robots / canonical tags for static blog page
228
+ * FIX Breadcrumbs with before / after HTML hooks (thanks to @wpchannel)
229
= 3.6.3 =
230
* INFO Improve code quality
231
* INFO Improve security
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: 3.6.3
7
Author: Benjamin Denis
8
Author URI: https://www.seopress.org/
9
License: GPLv2
@@ -53,7 +53,7 @@ register_deactivation_hook(__FILE__, 'seopress_deactivation');
53
///////////////////////////////////////////////////////////////////////////////////////////////////
54
//Define
55
///////////////////////////////////////////////////////////////////////////////////////////////////
56
- define( 'SEOPRESS_VERSION', '3.6.3' );
57
define( 'SEOPRESS_AUTHOR', 'Benjamin Denis' );
58
59
///////////////////////////////////////////////////////////////////////////////////////////////////
3
Plugin Name: SEOPress
4
Plugin URI: https://www.seopress.org/
5
Description: One of the best SEO plugins for WordPress.
6
+ Version: 3.6.4
7
Author: Benjamin Denis
8
Author URI: https://www.seopress.org/
9
License: GPLv2
53
///////////////////////////////////////////////////////////////////////////////////////////////////
54
//Define
55
///////////////////////////////////////////////////////////////////////////////////////////////////
56
+ define( 'SEOPRESS_VERSION', '3.6.4' );
57
define( 'SEOPRESS_AUTHOR', 'Benjamin Denis' );
58
59
///////////////////////////////////////////////////////////////////////////////////////////////////