PluginProbe
ThinkRank AI SEO – AI SEO Plugin for WordPress: Schema, XML Sitemaps, Meta Tags, Search Console & Local SEO / 2.14.1
ThinkRank AI SEO – AI SEO Plugin for WordPress: Schema, XML Sitemaps, Meta Tags, Search Console & Local SEO v2.14.1
2.14.1 2.14.0 2.13.0 2.12.0 2.11.0 2.10.0 2.9.0 2.8.0 2.7.0 2.6.0 2.5.0 2.4.0 2.3.0 2.2.0 2.1.1 2.1.0 2.0.2 2.0.1 2.0.0 1.32.0 1.31.0 1.30.0 1.29.0 1.28.0 1.27.0 All 56 releases
← All changes | includes/core/class-seo-plugin-detector.php +30 -4 2.9.0 → 2.14.1 View file →
@@ -71,8 +71,17 @@
71 71 'file' => 'squirrly-seo/squirrly.php',
72 72 'extra_files' => ['squirrly-seo-pack/index.php'],
73 73 'importable' => true,
74 74 ],
75 + 'slimseo' => [
76 + 'name' => 'Slim SEO',
77 + 'class' => 'SlimSEO\\Activator',
78 + 'function' => '',
79 + 'file' => 'slim-seo/slim-seo.php',
80 + // Slim SEO Pro runs with or without the free plugin (#886).
81 + 'extra_files' => ['slim-seo-pro/slim-seo-pro.php'],
82 + 'importable' => true,
83 + ],
75 84 'theseoframework' => [
76 85 'name' => 'The SEO Framework',
77 86 'class' => 'The_SEO_Framework\\Load',
78 87 'function' => 'the_seo_framework',
@@ -79,8 +88,20 @@
79 88 'file' => 'autodescription/autodescription.php',
80 89 'extra_files' => [],
81 90 'importable' => false,
82 91 ],
92 + // Brainstorm Force's SEO plugin. Missing from this list, a site moving
93 + // from SureRank kept both running: every head tag doubled and no
94 + // conflict notice or deactivate action appeared (#916). The class is
95 + // declared by loader.php, which surerank.php requires directly.
96 + 'surerank' => [
97 + 'name' => 'SureRank',
98 + 'class' => 'SureRank\\Loader',
99 + 'function' => '',
100 + 'file' => 'surerank/surerank.php',
101 + 'extra_files' => [],
102 + 'importable' => false,
103 + ],
83 104 ];
84 105
85 106 /**
86 107 * Detected plugins cache
@@ -156,11 +177,16 @@
156 177 if (!empty($plugin['function']) && function_exists($plugin['function'])) {
157 178 return true;
158 179 }
159 180
160 - // Check by plugin file
161 - if (!empty($plugin['file']) && function_exists('is_plugin_active') && is_plugin_active($plugin['file'])) {
162 - return true;
181 + // Check by plugin file, the add-on's included: Slim SEO Pro runs
182 + // without the free plugin, and is no less a second SEO plugin then.
183 + if (function_exists('is_plugin_active')) {
184 + foreach (array_merge([$plugin['file'] ?? ''], $plugin['extra_files'] ?? []) as $file) {
185 + if ($file !== '' && is_plugin_active($file)) {
186 + return true;
187 + }
188 + }
163 189 }
164 190
165 191 return false;
166 192 }
@@ -174,9 +200,9 @@
174 200 if (!self::has_seo_plugins()) {
175 201 return '';
176 202 }
177 203
178 - return __('Running more than one SEO plugin can create conflicts — duplicate meta tags, sitemaps, and schema markup that may hurt your search rankings. To avoid any SEO-related conflicts, we recommend deactivating third-party SEO plugins.', 'thinkrank');
204 + return __('Running more than one SEO plugin can create conflicts: duplicate meta tags, sitemaps, and schema markup that may hurt your search rankings. To avoid any SEO-related conflicts, we recommend deactivating third-party SEO plugins.', 'thinkrank');
179 205 }
180 206
181 207 /**
182 208 * Whether any detected plugin's SEO data can be imported into ThinkRank.