PluginProbe
ThinkRank AI SEO – AI SEO Plugin for WordPress: Schema, XML Sitemaps, Meta Tags, Search Console & Local SEO / 2.10.0
ThinkRank AI SEO – AI SEO Plugin for WordPress: Schema, XML Sitemaps, Meta Tags, Search Console & Local SEO v2.10.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 1.26.0 1.25.0 trunk 1.0.0 1.0.1 All 51 releases
← All changes | includes/core/class-plan-config.php +83 -2 2.6.0 → 2.10.0 View file →
@@ -57,9 +57,11 @@
57 57 * `Require-Attribution:` directives that state what agents may do with the
58 58 * content, rather than describing the content itself (#160 in Pro).
59 59 *
60 60 * Schema:
61 - * usage_policy bool May publish usage-policy directives in llms.txt.
61 + * usage_policy bool May publish usage-policy directives in llms.txt.
62 + * full_document bool May publish llms-full.txt, the full-content
63 + * companion document (thinkrank-pro#171).
62 64 *
63 65 * @since 2.5.0
64 66 *
65 67 * @return array Capability map.
@@ -65,9 +67,10 @@
65 67 * @return array Capability map.
66 68 */
67 69 public static function llms_txt(): array {
68 70 $defaults = [
69 - 'usage_policy' => false,
71 + 'usage_policy' => false,
72 + 'full_document' => false,
70 73 ];
71 74
72 75 /**
73 76 * Filter the llms.txt capability map.
@@ -159,8 +162,82 @@
159 162 return array_merge($defaults, is_array($caps) ? $caps : []);
160 163 }
161 164
162 165 /**
166 + * Capability map for sitewide duplicate snippet detection.
167 + *
168 + * The check itself is Free: finding out that two of your pages carry one
169 + * title is a read, it runs when the user asks for it, and it is exactly the
170 + * kind of thing that should work on a first install (#564). What Pro adds
171 + * is the unattended half — a recheck that runs on a schedule and tells you
172 + * when a new duplicate appears, rather than when you next open the screen.
173 + *
174 + * Nothing in the free plugin schedules anything, so `scheduled` only ever
175 + * reports what Pro has arranged; the report reads it to say whether it is
176 + * being watched or only answered on demand.
177 + *
178 + * Schema:
179 + * scheduled bool Duplicates are rechecked without the user asking.
180 + *
181 + * @since 2.10.0
182 + *
183 + * @return array Capability map.
184 + */
185 + public static function duplicate_snippets(): array {
186 + $defaults = [
187 + 'scheduled' => false,
188 + ];
189 +
190 + /**
191 + * Filter the duplicate snippets capability map.
192 + *
193 + * @since 2.10.0
194 + *
195 + * @param array $defaults Capability map (see schema above).
196 + */
197 + $caps = apply_filters('thinkrank_duplicate_snippets_capabilities', $defaults);
198 +
199 + return array_merge($defaults, is_array($caps) ? $caps : []);
200 + }
201 +
202 + /**
203 + * Capability map for the thin content report.
204 + *
205 + * Finding out which of your pages are thin is a read, it runs when the user
206 + * asks for it, and it is exactly what should work on a first install, so
207 + * the report is Free (#565). What Pro adds is the unattended half: an alert
208 + * when content that was fine becomes thin, or when something thin is
209 + * published, which is the decay framing Content Refresh Radar already uses.
210 + *
211 + * Nothing in the free plugin schedules anything, so `scheduled_alerts` only
212 + * ever reports what Pro has arranged; the report reads it to say whether it
213 + * is being watched or only answered on demand.
214 + *
215 + * Schema:
216 + * scheduled_alerts bool Newly-thin content is reported without being asked.
217 + *
218 + * @since 2.10.0
219 + *
220 + * @return array Capability map.
221 + */
222 + public static function thin_content(): array {
223 + $defaults = [
224 + 'scheduled_alerts' => false,
225 + ];
226 +
227 + /**
228 + * Filter the thin content capability map.
229 + *
230 + * @since 2.10.0
231 + *
232 + * @param array $defaults Capability map (see schema above).
233 + */
234 + $caps = apply_filters('thinkrank_thin_content_capabilities', $defaults);
235 +
236 + return array_merge($defaults, is_array($caps) ? $caps : []);
237 + }
238 +
239 + /**
163 240 * Check a single capability for a given feature.
164 241 *
165 242 * Adding a feature means adding a switch case to capabilities_for() that
166 243 * delegates to its own capability builder method.
@@ -186,8 +263,12 @@
186 263 case 'seo_analyzer':
187 264 return self::seo_analyzer();
188 265 case 'focus_pages':
189 266 return self::focus_pages();
267 + case 'duplicate_snippets':
268 + return self::duplicate_snippets();
269 + case 'thin_content':
270 + return self::thin_content();
190 271 default:
191 272 return [];
192 273 }
193 274 }