{"id":275147,"date":"2026-01-27T21:44:29","date_gmt":"2026-01-27T21:44:29","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/vectoron-tools\/"},"modified":"2026-03-19T19:48:02","modified_gmt":"2026-03-19T19:48:02","slug":"vectoron","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/vectoron\/","author":23437849,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.11.13","stable_tag":"2.11.13","tested":"6.9.4","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"Vectoron","header_author":"Vectoron","header_description":"Provides the [vectoron_article] shortcode to disable wpautop and load assets for custom content like the FAQ accordion and GA4 tracking. Includes REST API endpoints for external content management and ACF integration.","assets_banners_color":"","last_updated":"2026-03-19 19:48:02","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/vectoron.ai","rating":0,"author_block_rating":0,"active_installs":0,"downloads":529,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.10.0":{"tag":"2.10.0","author":"vectoron","date":"2026-01-30 20:47:51"},"2.10.1":{"tag":"2.10.1","author":"vectoron","date":"2026-01-30 21:16:35"},"2.10.2":{"tag":"2.10.2","author":"vectoron","date":"2026-01-30 21:28:03"},"2.11.0":{"tag":"2.11.0","author":"vectoron","date":"2026-02-09 21:51:01"},"2.11.1":{"tag":"2.11.1","author":"vectoron","date":"2026-02-09 21:52:22"},"2.11.11":{"tag":"2.11.11","author":"vectoron","date":"2026-03-18 17:40:05"},"2.11.12":{"tag":"2.11.12","author":"vectoron","date":"2026-03-19 19:38:54"},"2.11.13":{"tag":"2.11.13","author":"vectoron","date":"2026-03-19 19:48:02"},"2.11.3":{"tag":"2.11.3","author":"vectoron","date":"2026-02-11 21:25:23"},"2.11.6":{"tag":"2.11.6","author":"vectoron","date":"2026-02-25 14:28:00"},"2.9.7":{"tag":"2.9.7","author":"vectoron","date":"2026-01-27 22:04:21"},"2.9.9":{"tag":"2.9.9","author":"vectoron","date":"2026-01-28 19:15:46"}},"upgrade_notice":{"2.11.2":"<p>Schema Sync: JSON-LD FAQ schema is now extracted from post content and injected into ``, fixing visible JSON text in WPBakery, Elementor, and Divi page builders. No configuration needed. Existing posts auto-migrate on first view.<\/p>","2.9.9":"<p>CSS styling fix for page builders: Elementor, Beaver Builder, DIVI, and WP Bakery now properly wrap content so FAQ accordions, headings, and other Vectoron styles work correctly.<\/p>","2.9.8":"<p>New feature: WP Bakery (Visual Composer) Page Builder integration for automatic content sync. Content is converted to WP Bakery shortcodes with row\/column\/column_text structure. Configure sync mode under Settings &gt; Vectoron.<\/p>","2.9.0":"<p>New feature: DIVI Theme and Builder integration for automatic content sync. Content is converted to DIVI shortcodes with section\/row\/column\/text module structure. Configure sync mode under Settings &gt; Vectoron.<\/p>","2.8.0":"<p>New feature: Rank Math SEO integration for automatic metadata sync. Supports meta description, SEO title, and focus keyword.<\/p>","2.7.0":"<p>Code refactoring release: Plugin structure reorganized into modular files for better maintainability. No functional changes - all features work identically.<\/p>","2.6.0":"<p>New feature: Beaver Builder integration for automatic content sync. Configure sync mode under Settings &gt; Vectoron.<\/p>","2.5.0":"<p>Security update: Proper output escaping for third-party version constants and WordPress coding standards compliance.<\/p>","2.4.0":"<p>WordPress Plugin Review compliance: Improved REST API permission callbacks and removed unprefixed shortcode.<\/p>","2.1.0":"<p>ACF sync now requires explicit Vectoron identification. Add X-Vectoron-Sync: true header when using native WP REST API.<\/p>","2.0.0":"<p>New ACF Integration feature. Configure under Settings &gt; Vectoron to auto-sync content to ACF fields.<\/p>","1.7":"<p>Improved input sanitization and code quality for WordPress Plugin Directory compliance.<\/p>","1.6":"<p>Important security update. All users should upgrade immediately. This version adds rate limiting, capability checks, and fixes a potential authentication bypass.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.10.0","2.10.1","2.10.2","2.11.0","2.11.1","2.11.11","2.11.12","2.11.13","2.11.3","2.11.6","2.9.7","2.9.9"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"API status endpoint response","2":"Shortcode usage in the editor"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[232,4917,193472,23853,80],"plugin_category":[36,43],"plugin_contributors":[254794],"plugin_business_model":[],"class_list":["post-275147","plugin","type-plugin","status-publish","hentry","plugin_tags-analytics","plugin_tags-content-management","plugin_tags-ga4","plugin_tags-rest-api","plugin_tags-shortcode","plugin_category-analytics","plugin_category-customization","plugin_contributors-vectoron","plugin_committers-vectoron"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/vectoron.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Vectoron provides three main features:<\/p>\n\n<p><strong>1. REST API Endpoints<\/strong><\/p>\n\n<p>Secure REST API endpoints for external content management, perfect for integrating with automation platforms like Superblocks, Zapier, or custom applications.<\/p>\n\n<ul>\n<li>Create and update posts programmatically<\/li>\n<li>Manage categories<\/li>\n<li>Upload media (file upload, base64, or URL)<\/li>\n<li>Full authentication support (Basic Auth or custom headers)<\/li>\n<\/ul>\n\n<p><strong>2. Content Shortcodes<\/strong><\/p>\n\n<p>The <code>[vectoron_article]<\/code> shortcode provides:<\/p>\n\n<ul>\n<li>Automatic wpautop disabling for custom HTML content<\/li>\n<li>Built-in GA4 event tracking<\/li>\n<li>FAQ accordion styling support<\/li>\n<\/ul>\n\n<p><strong>3. ACF Integration<\/strong><\/p>\n\n<p>Automatically sync post content to Advanced Custom Fields:<\/p>\n\n<ul>\n<li>Settings page under Settings &gt; Vectoron<\/li>\n<li>Auto-detect WYSIWYG fields in ACF field groups<\/li>\n<li>Support for Flexible Content, Repeaters, and Groups<\/li>\n<li>ACF sync triggered by Vectoron API or X-Vectoron-Sync header<\/li>\n<li>Works with both custom Vectoron API and native WP REST API<\/li>\n<\/ul>\n\n<p><strong>4. Page Builder Integrations<\/strong><\/p>\n\n<p>Seamless integration with popular WordPress page builders:<\/p>\n\n<ul>\n<li><strong>Elementor<\/strong>: Auto-sync content to Elementor's text-editor widgets<\/li>\n<li><strong>Beaver Builder<\/strong>: Auto-sync content to Beaver Builder's rich-text modules<\/li>\n<li><strong>DIVI<\/strong>: Auto-sync content to DIVI's shortcode format (sections, rows, columns, text modules)<\/li>\n<li><strong>WP Bakery<\/strong>: Auto-sync content to WP Bakery's shortcode format (rows, columns, column_text)<\/li>\n<li>Configurable sync modes: Auto (detect existing builder posts), Always (convert all posts), or Disabled<\/li>\n<li>Cache clearing for immediate visual updates<\/li>\n<\/ul>\n\n<p><strong>5. SEO Plugin Integrations<\/strong><\/p>\n\n<p>Automatic SEO metadata sync with popular SEO plugins:<\/p>\n\n<ul>\n<li><strong>Yoast SEO<\/strong>: Sync meta description, SEO title, and focus keyword<\/li>\n<li><strong>SEOpress<\/strong>: Sync meta description, SEO title, and target keyword<\/li>\n<li><strong>Rank Math<\/strong>: Sync meta description, SEO title, and focus keyword<\/li>\n<li>All SEO fields set via API are automatically synced to the active SEO plugin<\/li>\n<\/ul>\n\n<h3>API Endpoints<\/h3>\n\n<p>All endpoints use the namespace <code>vectoron\/v1<\/code>:<\/p>\n\n<ul>\n<li><code>POST \/wp-json\/vectoron\/v1\/posts<\/code> - Create a new post<\/li>\n<li><code>PUT \/wp-json\/vectoron\/v1\/posts\/{id}<\/code> - Update an existing post<\/li>\n<li><code>POST \/wp-json\/vectoron\/v1\/categories<\/code> - Create a category<\/li>\n<li><code>POST \/wp-json\/vectoron\/v1\/media<\/code> - Upload media<\/li>\n<li><code>GET \/wp-json\/vectoron\/v1\/status<\/code> - Health check (no auth required)<\/li>\n<\/ul>\n\n<h3>Authentication<\/h3>\n\n<p>Three authentication methods are supported:<\/p>\n\n<ol>\n<li><strong>HTTP Basic Auth<\/strong> - Standard username:password<\/li>\n<li><strong>Authorization Header<\/strong> - <code>Authorization: Basic &lt;base64&gt;<\/code><\/li>\n<li><strong>Custom Headers<\/strong> - <code>X-WP-Username<\/code> and <code>X-WP-Password<\/code><\/li>\n<\/ol>\n\n<h3>ACF Sync Header<\/h3>\n\n<p>When using the native WordPress REST API (<code>\/wp-json\/wp\/v2\/posts<\/code>) instead of the Vectoron custom API, you can trigger ACF sync by adding the <code>X-Vectoron-Sync<\/code> header:<\/p>\n\n<pre><code>X-Vectoron-Sync: true\n<\/code><\/pre>\n\n<p>This is useful when:<\/p>\n\n<ul>\n<li>You want to use WordPress's native post creation\/update endpoints<\/li>\n<li>Your integration already uses the WP REST API<\/li>\n<li>You need features only available in the native API<\/li>\n<\/ul>\n\n<p>Without this header, native WP REST API requests will NOT trigger ACF sync, ensuring Gutenberg and other WordPress interfaces don't interfere with ACF content.<\/p>\n\n<h3>Security Features<\/h3>\n\n<ul>\n<li>Rate limiting (60 requests\/minute per IP)<\/li>\n<li>Capability-based permission checks<\/li>\n<li>SSRF protection for URL uploads<\/li>\n<li>Input sanitization and validation<\/li>\n<li>Protected meta key filtering<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>vectoron<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Test the API status at <code>\/wp-json\/vectoron\/v1\/status<\/code><\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20permissions%20are%20required%20for%20api%20access%3F\"><h3>What permissions are required for API access?<\/h3><\/dt>\n<dd><ul>\n<li>Creating posts: User must have <code>edit_posts<\/code> capability (or <code>edit_pages<\/code> for page post type)<\/li>\n<li>Updating posts: User must have <code>edit_post<\/code> capability for the specific post being edited<\/li>\n<li>Categories: User must have <code>manage_categories<\/code> capability<\/li>\n<li>Media: User must have <code>upload_files<\/code> capability<\/li>\n<\/ul><\/dd>\n<dt id=\"what%20image%20formats%20are%20supported%20for%20media%20uploads%3F\"><h3>What image formats are supported for media uploads?<\/h3><\/dt>\n<dd><p>JPEG, PNG, GIF, and WebP formats are supported, with a maximum file size of 10MB.<\/p><\/dd>\n<dt id=\"how%20do%20i%20use%20the%20shortcode%3F\"><h3>How do I use the shortcode?<\/h3><\/dt>\n<dd><p>Simply add <code>[vectoron_article]<\/code> to any post or page where you want to disable automatic paragraph formatting and enable GA4 tracking. (Note: The legacy <code>[marketing_visionary_article]<\/code> shortcode has been removed; please update any existing content to use <code>[vectoron_article]<\/code>.)<\/p><\/dd>\n<dt id=\"is%20the%20api%20rate%20limited%3F\"><h3>Is the API rate limited?<\/h3><\/dt>\n<dd><p>Yes, the API is rate limited to 60 requests per minute per IP address to prevent abuse.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.11.13<\/h4>\n\n<ul>\n<li>Fixed: Content detection now matches <code>am-article<\/code> as substring instead of exact <code>class=\"am-article\"<\/code>, fixing CSS\/JS not loading on posts with compound class attributes like <code>am-article am-article-type-*<\/code><\/li>\n<\/ul>\n\n<h4>2.11.12<\/h4>\n\n<ul>\n<li>Fixed: Asset version now uses VECTORON_VERSION constant for proper cache busting on plugin updates<\/li>\n<\/ul>\n\n<h4>2.11.11<\/h4>\n\n<ul>\n<li>Fixed: Plugin CSS now uses @layer so theme styles always take precedence over plugin defaults<\/li>\n<\/ul>\n\n<h4>2.11.10<\/h4>\n\n<ul>\n<li>Fixed: DIVI posts now inherit the site's configured page layout (sidebar, full-width, etc.) instead of always using full-width<\/li>\n<li>Fixed: DIVI Visual Builder now recognizes Vectoron-published posts for visual editing (VB|Divi| version prefix)<\/li>\n<li>Fixed: Re-publishing a post now repairs incorrect DIVI metadata (layout, version, gutter width)<\/li>\n<li>Added: <code>vectoron_repair_divi_post_meta()<\/code> function for retroactive repair of existing posts<\/li>\n<li>Added: Supplementary DIVI meta fields (gutter_width, built_for_post_type) for full native DIVI parity<\/li>\n<li>Fixed: Exception handler now catches PHP 7+ Errors (Throwable) in DIVI sync<\/li>\n<\/ul>\n\n<h4>2.11.8<\/h4>\n\n<ul>\n<li>Internal improvements to content formatting structural integrity checks<\/li>\n<\/ul>\n\n<h4>2.11.7<\/h4>\n\n<ul>\n<li>Fixed: Multiple JSON-LD schema tags (e.g. FAQPage + ItemList for listicle articles) now all render in <code>&lt;head&gt;<\/code><\/li>\n<li>Previously only the first schema tag was extracted; the second was left in the content body as visible text<\/li>\n<li>The <code>wp_head<\/code> output now emits one <code>&lt;script type=\"application\/ld+json\"&gt;<\/code> per schema object<\/li>\n<li>Fixed: Elementor sync no longer sets <code>hide_title=yes<\/code> in page settings, which caused post titles to be hidden on themes that don't render titles outside Elementor<\/li>\n<li>On re-sync, existing <code>hide_title<\/code> is surgically removed while preserving other Elementor page settings<\/li>\n<\/ul>\n\n<h4>2.11.6<\/h4>\n\n<ul>\n<li>Fixed: ACF flexible content fields empty after publish when native WP REST API (Tier 2) is used<\/li>\n<li>Root cause: save_post hook fires inside wp_insert\/update_post before _vectoron_sync_pending flag can be set, causing ACF sync to exit early<\/li>\n<li>Fix: new rest_after_insert_post hook detects X-Vectoron-Sync header and re-runs ACF content sync + SEO metadata sync after native API saves<\/li>\n<li>Also fixes Yoast\/SEOPress\/Rank Math metadata not syncing on Tier 2 requests<\/li>\n<\/ul>\n\n<h4>2.11.3<\/h4>\n\n<ul>\n<li>Fixed: Draft posts now return pretty permalinks instead of <code>?p=NNN<\/code> ugly URLs<\/li>\n<li>Added <code>get_pretty_permalink()<\/code> helper using WordPress's <code>get_sample_permalink()<\/code> technique<\/li>\n<li>Applies to both create_post and update_post API responses<\/li>\n<\/ul>\n\n<h4>2.11.2<\/h4>\n\n<ul>\n<li>Added Schema Sync integration: auto-extract JSON-LD from content body into <code>&lt;head&gt;<\/code><\/li>\n<li>Fixes WPBakery\/Elementor\/Divi rendering <code>&lt;script type=\"application\/ld+json\"&gt;<\/code> tags as visible text<\/li>\n<li>Two-layer fix: new posts receive schema via API field, existing posts auto-migrate on first view<\/li>\n<li>Supports all three publishing tiers (Vectoron API, Native WP REST API, AJAX proxy)<\/li>\n<li>XSS-safe output via <code>wp_json_encode()<\/code> re-serialization<\/li>\n<li>Zero configuration required<\/li>\n<\/ul>\n\n<h4>2.10.3<\/h4>\n\n<ul>\n<li>Added collapsible help documentation to Elementor Integration settings card<\/li>\n<li>Help section explains sync modes: Disabled (recommended for Theme Builder), Always, and Auto<\/li>\n<li>Includes quick reference table and troubleshooting tips<\/li>\n<li>Only visible when Elementor is detected on the site<\/li>\n<\/ul>\n\n<h4>2.10.2<\/h4>\n\n<ul>\n<li>Fixed: Added <code>_elementor_page_settings<\/code> with <code>hide_title=yes<\/code> to match working Elementor posts<\/li>\n<li>Without this setting, pages displayed with unstyled\/default WordPress title formatting<\/li>\n<\/ul>\n\n<h4>2.10.1<\/h4>\n\n<ul>\n<li>Fixed: Always use 'wp-page' template type for Elementor (using 'wp-post' caused content not to render)<\/li>\n<li>This matches the working configuration found in properly formatted Elementor posts<\/li>\n<\/ul>\n\n<h4>2.10.0<\/h4>\n\n<ul>\n<li>Enhanced Elementor integration with proper metadata and modern container support<\/li>\n<li>Added <code>_elementor_template_type<\/code> meta field (wp-page for pages, wp-post for posts)<\/li>\n<li>Added <code>_wp_page_template<\/code> meta field for pages (required by Elementor)<\/li>\n<li>Added <code>_elementor_pro_version<\/code> meta field when Elementor Pro is installed<\/li>\n<li>Smart container detection: uses modern flexbox containers (Elementor 3.6+) when enabled<\/li>\n<li>Fallback to legacy section\/column structure for older Elementor or when containers are disabled<\/li>\n<li>Status endpoint now reports <code>containers_enabled<\/code> and <code>layout_mode<\/code> for debugging<\/li>\n<li>Improved code quality: centralized container detection helper function<\/li>\n<\/ul>\n\n<h4>2.9.9<\/h4>\n\n<ul>\n<li>Fixed: Page builder integrations now wrap content in <code>.vectoron-content<\/code> container<\/li>\n<li>This ensures all Vectoron CSS styles (FAQ accordions, headings, tables, etc.) work correctly<\/li>\n<li>Affects: Elementor, Beaver Builder, DIVI, and WP Bakery integrations<\/li>\n<li>Existing posts will be styled correctly on next publish\/update via Vectoron API<\/li>\n<\/ul>\n\n<h4>2.9.8<\/h4>\n\n<ul>\n<li>Added WP Bakery (Visual Composer) Page Builder integration for automatic content sync<\/li>\n<li>New settings card for WP Bakery sync mode configuration (Auto\/Always\/Disabled)<\/li>\n<li>WP Bakery status added to \/status API endpoint (installed, version, sync_mode)<\/li>\n<li>Content converted to WP Bakery shortcode structure: row -&gt; column -&gt; column_text<\/li>\n<li>Smart detection prevents double-wrapping of existing WP Bakery shortcode content<\/li>\n<li>Full cache clearing support for WP Bakery CSS transients and custom CSS files<\/li>\n<li>Manual sync test diagnostics now include WP Bakery detection and testing<\/li>\n<li>Page builder integrations section updated in documentation<\/li>\n<\/ul>\n\n<h4>2.9.7<\/h4>\n\n<ul>\n<li><strong>New Default<\/strong>: Page builder sync mode now defaults to \"Always\" for new installations<\/li>\n<li>Elementor, Beaver Builder, and DIVI now sync ALL Vectoron-published content by default<\/li>\n<li>This fixes issues where content appeared in the page builder editor but not on the frontend<\/li>\n<li>Rationale: Vectoron creates content - there's no existing page builder layout to protect<\/li>\n<li>Existing installations keep their current settings - no action required<\/li>\n<li>Users who manually design page builder layouts can change sync mode to \"Auto\" to protect them<\/li>\n<\/ul>\n\n<h4>2.9.6<\/h4>\n\n<ul>\n<li>ACF WYSIWYG fields now automatically process shortcodes via <code>acf\/format_value\/type=wysiwyg<\/code> filter<\/li>\n<li>Shortcodes like <code>[vectoron_article]<\/code> in ACF content are now executed when displayed via <code>the_field()<\/code> or <code>get_field()<\/code><\/li>\n<\/ul>\n\n<h4>2.9.5<\/h4>\n\n<ul>\n<li>Shortcode detection now checks both post_content AND configured ACF field<\/li>\n<li>CSS\/JS assets now load even when shortcode is only in ACF field (not in main content)<\/li>\n<li>Added <code>vectoron_has_shortcode()<\/code> helper function for unified shortcode detection<\/li>\n<\/ul>\n\n<h4>2.9.4<\/h4>\n\n<ul>\n<li>ACF auto-detection now runs on every admin page load (not just plugin activation)<\/li>\n<li>Automatically selects first WYSIWYG field if ACF is installed and no field is configured<\/li>\n<li>Fixes issue where ACF installed after Vectoron was never auto-detected<\/li>\n<\/ul>\n\n<h4>2.9.3<\/h4>\n\n<ul>\n<li>Fixed sync test aborting early when only SEO plugins are installed (no page builders)<\/li>\n<li>SEO plugins (Yoast, SEOpress, Rank Math) now count as valid sync targets<\/li>\n<li>Full debug log now displays even when no page builders are configured<\/li>\n<\/ul>\n\n<h4>2.9.2<\/h4>\n\n<ul>\n<li>Fixed Yoast SEO focus keyphrase not appearing in Edit Post UI<\/li>\n<li>Corrected meta key from <code>_yoast_wpseo_focuskeyword<\/code> to <code>_yoast_wpseo_focuskw<\/code><\/li>\n<li>Updated sync test diagnostics to read and display correct meta key<\/li>\n<\/ul>\n\n<h4>2.9.1<\/h4>\n\n<ul>\n<li>Minor bug fixes<\/li>\n<\/ul>\n\n<h4>2.9.0<\/h4>\n\n<ul>\n<li>Added DIVI Theme and Builder integration for automatic content sync<\/li>\n<li>New settings card for DIVI sync mode configuration (Auto\/Always\/Disabled)<\/li>\n<li>DIVI status added to \/status API endpoint (installed, version, sync_mode)<\/li>\n<li>Content converted to DIVI shortcode structure: section -&gt; row -&gt; column -&gt; text module<\/li>\n<li>Smart detection prevents double-wrapping of existing DIVI shortcode content<\/li>\n<li>Full cache clearing support for DIVI static resources and builder output<\/li>\n<li>Manual sync test diagnostics now include DIVI detection and testing<\/li>\n<li>Page builder integrations section updated in documentation<\/li>\n<\/ul>\n\n<h4>2.8.0<\/h4>\n\n<ul>\n<li>Added Rank Math SEO integration for automatic metadata sync<\/li>\n<li>New settings card for Rank Math SEO showing plugin status and version<\/li>\n<li>Rank Math status added to \/status API endpoint (installed, version, pro)<\/li>\n<li>Manual sync test diagnostics now include Rank Math SEO detection and metadata display<\/li>\n<li>SEO integrations section added to documentation<\/li>\n<\/ul>\n\n<h4>2.7.0<\/h4>\n\n<ul>\n<li>Refactored plugin into modular file structure for improved maintainability<\/li>\n<li>Extracted integrations into separate files: ACF, Elementor, Beaver Builder, Yoast SEO, SEOpress<\/li>\n<li>Moved settings page and debug utilities into includes\/ directory<\/li>\n<li>Moved shortcodes and asset loading into includes\/shortcodes.php<\/li>\n<li>No functional changes - all features work identically to 2.6.0<\/li>\n<li>Main plugin file reduced from ~2,700 lines to ~90 lines<\/li>\n<\/ul>\n\n<h4>2.6.0<\/h4>\n\n<ul>\n<li>Added Beaver Builder integration for automatic content sync<\/li>\n<li>New settings card for Beaver Builder sync mode configuration (Auto\/Always\/Disabled)<\/li>\n<li>Beaver Builder status added to \/status API endpoint<\/li>\n<li>Manual sync test diagnostics now include Beaver Builder detection and testing<\/li>\n<li>Page builder integrations section added to documentation<\/li>\n<\/ul>\n\n<h4>2.5.0<\/h4>\n\n<ul>\n<li>Added proper output escaping for third-party version constants (WPSEO_VERSION, ELEMENTOR_VERSION, SEOPRESS_VERSION)<\/li>\n<li>Replaced mt_rand() with wp_rand() for WordPress coding standards compliance<\/li>\n<li>Security hardening per WordPress Plugin Review Team feedback<\/li>\n<\/ul>\n\n<h4>2.4.0<\/h4>\n\n<ul>\n<li>Improved REST API permission callbacks for WordPress plugin review compliance<\/li>\n<li>POST \/posts now properly checks <code>edit_pages<\/code> capability for page post type<\/li>\n<li>PUT \/posts\/{id} now validates per-post <code>edit_post<\/code> capability in permission_callback<\/li>\n<li>Removed unprefixed <code>marketing_visionary_article<\/code> shortcode (use <code>vectoron_article<\/code> instead)<\/li>\n<li>Added defense-in-depth permission checks in update_post callback<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Added X-Vectoron-Sync header support for native WP REST API<\/li>\n<li>ACF sync now works with both Vectoron custom API and native WP REST API (with header)<\/li>\n<li>Gutenberg and WP Admin no longer accidentally trigger ACF sync<\/li>\n<li>Improved sync trigger documentation<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Added ACF Integration with Settings page (Settings &gt; Vectoron)<\/li>\n<li>Auto-detect WYSIWYG fields from ACF field groups<\/li>\n<li>Support for Flexible Content, Repeaters, and Groups<\/li>\n<li>Auto-sync post_content to configured ACF field on save<\/li>\n<li>ACF info added to \/status endpoint<\/li>\n<\/ul>\n\n<h4>1.7<\/h4>\n\n<ul>\n<li>Improved input sanitization for API authentication<\/li>\n<li>Code quality improvements for WordPress Plugin Directory compliance<\/li>\n<\/ul>\n\n<h4>1.6<\/h4>\n\n<ul>\n<li>Added comprehensive security hardening<\/li>\n<li>Added rate limiting for API endpoints<\/li>\n<li>Added SSRF protection for URL-based media uploads<\/li>\n<li>Added capability-based permission checks<\/li>\n<li>Added file size limits for uploads<\/li>\n<li>Improved input validation and sanitization<\/li>\n<li>Fixed authentication bypass vulnerability<\/li>\n<\/ul>\n\n<h4>1.5<\/h4>\n\n<ul>\n<li>Added media upload endpoint with multiple upload methods<\/li>\n<li>Added base64 and URL upload support<\/li>\n<\/ul>\n\n<h4>1.4<\/h4>\n\n<ul>\n<li>Added category creation endpoint<\/li>\n<li>Improved error handling<\/li>\n<\/ul>\n\n<h4>1.3<\/h4>\n\n<ul>\n<li>Added post update endpoint<\/li>\n<li>Added custom meta field support<\/li>\n<\/ul>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>Added GA4 tracking to shortcode<\/li>\n<li>Improved measurement ID detection<\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>Initial REST API implementation<\/li>\n<li>Basic authentication support<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial release with shortcode functionality<\/li>\n<\/ul>","raw_excerpt":"A WordPress REST API plugin for external content management with authenticated API endpoints, GA4 tracking shortcodes, and ACF integration.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/275147","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=275147"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vectoron"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=275147"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=275147"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=275147"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=275147"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=275147"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=275147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}