PluginProbe
Search Atlas SEO – OTTO AI SEO Automation for WordPress / 2.7.1
Search Atlas SEO – OTTO AI SEO Automation for WordPress v2.7.1
2.7.1 2.7.2 2.7.0 2.6.26 2.6.25 2.6.24 2.6.23 2.6.22 2.6.21 2.6.20 2.6.19 2.6.18 2.6.17 2.6.16 2.6.15 2.6.14 2.6.13 2.6.12 2.6.11 2.6.10 2.6.9 2.6.8 2.6.7 2.6.6 2.6.5 All 141 releases
← All changes | otto/Otto_pixel_class.php +16 -3 2.6.26 → 2.7.1 View file →
@@ -100,10 +100,10 @@
100 100 return false;
101 101 }
102 102
103 103 # Parse saved domain + incoming URL
104 - $saved_domain = parse_url($saved['domain'], PHP_URL_HOST);
105 - $incoming_domain = parse_url($url, PHP_URL_HOST);
104 + $saved_domain = wp_parse_url($saved['domain'], PHP_URL_HOST);
105 + $incoming_domain = wp_parse_url($url, PHP_URL_HOST);
106 106
107 107 # Domain mismatch - not crawled
108 108 if (empty($saved_domain) || empty($incoming_domain) || strcasecmp($saved_domain, $incoming_domain) !== 0) {
109 109 return false;
@@ -109,9 +109,9 @@
109 109 return false;
110 110 }
111 111
112 112 # Parse incoming path (ignore query string)
113 - $parsed_url = parse_url($url);
113 + $parsed_url = wp_parse_url($url);
114 114 $url_path = $parsed_url['path'] ?? '/';
115 115
116 116 # Ensure path starts with / but don't modify trailing slashes
117 117 # Otto stores paths exactly as they appear in URLs
@@ -195,8 +195,21 @@
195 195
196 196
197 197 # render route html
198 198 function render_route_html(){
199 +
200 + # Headless frontends do not consume WordPress-rendered HTML, so avoid
201 + # suggestion lookups, buffering and internal fetches altogether.
202 + # Falls back to a guarded direct read rather than skipping the check:
203 + # silently skipping would render OTTO markup on a headless site.
204 + # @phpstan-ignore-next-line function.alreadyNarrowedType
205 + $headless = function_exists('metasync_headless_is_active')
206 + ? metasync_headless_is_active()
207 + : (class_exists('Metasync_Headless_Config') && Metasync_Headless_Config::is_active());
208 +
209 + if ($headless) {
210 + return;
211 + }
199 212
200 213 # Clear per-request statics before any path runs. Harmless under PHP-FPM
201 214 # (the process ends with the request) but required under persistent-worker
202 215 # SAPIs, where a latched flag would silently disable cache capping and