Fix: the search input field’s CSS selector still referenced the old markup structure from before multi-instance support was added (#query instead of .ytps-query), so it never matched and the input rendered unstyled — visible as an oversized, empty-looking search bar with a plain browser-default text box instead of the intended compact search field. Styling now applies correctly.
Fix: added missing styling for the optional heading text (block/widget/shortcode heading attribute).
3.2.1
Fix: reverted the main plugin file name from youtube-post-search.php back to youtubepostsearch.php. The 3.2.0 rewrite renamed it, which broke the update path for sites with the plugin already installed and active — WordPress tracks active plugins by exact file path, and the old path no longer existed after updating, silently stopping the plugin from loading. Fresh installs of 3.2.0 were unaffected; in-place updates from an earlier version were not. If you experienced the search box not working after updating to 3.2.0, updating to 3.2.1 resolves it with no configuration changes needed.
3.2.0
New: Gutenberg block (“YouTube Video Search”) with live editor preview and per-instance heading/placeholder options.
New: classic widget for sidebars and footer widget areas.
New: multiple instances (block + widget + shortcode) now work correctly together on the same page — each has independent search state and playlist.
New: SEO — the search box now server-renders your configured channel’s latest uploads as real, crawlable <a href> links with schema.org VideoObject JSON-LD, instead of starting as an empty box that only fills in after a visitor searches.
New: cached JSON REST feed at /wp-json/ytps/v1/videos for your channel’s videos, with a <link rel=”alternate”> discovery tag in the page head.
New: live search results also carry client-side schema.org structured data as they load.
New: “How to Use This Plugin” reference panel added directly to the Settings screen — copy-paste snippets for all four placement methods plus SEO/growth tips.
Improvement: video cards are now real anchor links (work with JavaScript disabled, support ctrl/cmd-click to open in a new tab), progressively enhanced to open inline when JavaScript is available.
Improvement: added uploadDate (from the API’s publishedAt) to structured data output.
3.1.0
Redesigned front end: modern CSS Grid card layout, fluid down to mobile widths, automatic dark-mode support, animated loading state, debounced search-as-you-type.
Video player is now fully responsive via CSS aspect-ratio instead of JavaScript width calculations.
New: configure one or more of your own YouTube channels. Matching videos from those channels are shown first, ahead of public search results for the same keyword.
New: “Only show videos from the channel(s)” checkbox to restrict search entirely to your configured channel(s).
New: results now display the source channel name, and channel-sourced cards carry a badge.
Channel names/@handles/URLs are resolved to canonical channel IDs once on settings save (not on every search), keeping front-end search fast and quota-light.
3.0.0
Full rewrite for WordPress 6.4–7.0, PHP 8.0–8.3.
Security: API key is no longer printed into front-end HTML/JS; all YouTube API calls are proxied server-side via a nonce-protected AJAX endpoint.
Security: settings form now uses a nonce and capability check; all output is escaped and all input is sanitized.
Fix: plugin options are no longer deleted on simple deactivation (moved to uninstall.php, WordPress-standard behavior).
Removed dependency on Bootstrap CDN; replaced with a small self-contained stylesheet.
Removed dependency on jQuery/jQuery UI CDN; now uses WordPress core’s bundled copies.
Removed the hardcoded shared demo API key.
Removed deprecated dislikeCount usage (no longer returned by the YouTube API).
Autocomplete suggestions now proxied server-side (fixes mixed-content failures on HTTPS sites).
Performance: video statistics for a search’s results are now fetched in a single batched API call instead of one call per video.