| @@ -63,8 +63,25 @@ | ||
| 63 | 63 | 'file' => 'all-in-one-seo-pack/all_in_one_seo_pack.php', |
| 64 | 64 | 'extra_files' => ['all-in-one-seo-pack-pro/all_in_one_seo_pack.php'], |
| 65 | 65 | 'importable' => true, |
| 66 | 66 | ], |
| 67 | + 'squirrly' => [ | |
| 68 | + 'name' => 'Squirrly SEO', | |
| 69 | + 'class' => 'SQ_Classes_ObjController', | |
| 70 | + 'function' => 'sq_wpcall', | |
| 71 | + 'file' => 'squirrly-seo/squirrly.php', | |
| 72 | + 'extra_files' => ['squirrly-seo-pack/index.php'], | |
| 73 | + 'importable' => true, | |
| 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 | + ], | |
| 67 | 84 | 'theseoframework' => [ |
| 68 | 85 | 'name' => 'The SEO Framework', |
| 69 | 86 | 'class' => 'The_SEO_Framework\\Load', |
| 70 | 87 | 'function' => 'the_seo_framework', |
| @@ -148,11 +165,16 @@ | ||
| 148 | 165 | if (!empty($plugin['function']) && function_exists($plugin['function'])) { |
| 149 | 166 | return true; |
| 150 | 167 | } |
| 151 | 168 | |
| 152 | - // Check by plugin file | |
| 153 | - if (!empty($plugin['file']) && function_exists('is_plugin_active') && is_plugin_active($plugin['file'])) { | |
| 154 | - return true; | |
| 169 | + // Check by plugin file, the add-on's included: Slim SEO Pro runs | |
| 170 | + // without the free plugin, and is no less a second SEO plugin then. | |
| 171 | + if (function_exists('is_plugin_active')) { | |
| 172 | + foreach (array_merge([$plugin['file'] ?? ''], $plugin['extra_files'] ?? []) as $file) { | |
| 173 | + if ($file !== '' && is_plugin_active($file)) { | |
| 174 | + return true; | |
| 175 | + } | |
| 176 | + } | |
| 155 | 177 | } |
| 156 | 178 | |
| 157 | 179 | return false; |
| 158 | 180 | } |