{"id":296242,"date":"2026-05-26T04:34:47","date_gmt":"2026-05-26T04:34:47","guid":{"rendered":"https:\/\/en-au.wordpress.org\/plugins\/ai-powered-share-buttons-pro\/"},"modified":"2026-10-12T00:55:48","modified_gmt":"2026-10-12T00:55:48","slug":"ewebmarketing-llm-summariser","status":"publish","type":"plugin","link":"https:\/\/azb.wordpress.org\/plugins\/ewebmarketing-llm-summariser\/","author":23474642,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.6.1","stable_tag":"1.6.1","tested":"7.1.3","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"AI Summarize Buttons & Google Preferred Source","header_author":"E-Web Marketing Team","header_description":"Growth hack your traffic by adding interactive AI share buttons (ChatGPT, Claude, Perplexity, Gemini, Grok, etc.) to your posts.","assets_banners_color":"cbc9c6","last_updated":"2026-10-12 00:55:48","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.ewebmarketing.au\/website-design\/","header_author_uri":"https:\/\/www.ewebmarketing.au\/","rating":5,"author_block_rating":0,"active_installs":10,"downloads":1963,"num_ratings":4,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.1":{"tag":"1.1.1","author":"jisanewebmarketing","date":"2026-05-26 07:11:32","revision":3548648},"1.1.2":{"tag":"1.1.2","author":"jisanewebmarketing","date":"2026-05-26 05:33:36","revision":3548569},"1.2.0":{"tag":"1.2.0","author":"jisanewebmarketing","date":"2026-05-26 08:28:17","revision":3548743},"1.3.0":{"tag":"1.3.0","author":"jisanewebmarketing","date":"2026-05-27 23:42:42","revision":3551384},"1.4.0":{"tag":"1.4.0","author":"jisanewebmarketing","date":"2026-08-13 01:06:18","revision":3644106},"1.4.1":{"tag":"1.4.1","author":"jisanewebmarketing","date":"2026-08-13 01:26:25","revision":3644119},"1.4.2":{"tag":"1.4.2","author":"jisanewebmarketing","date":"2026-08-18 01:26:46","revision":3651885},"1.5.0":{"tag":"1.5.0","author":"jisanewebmarketing","date":"2026-10-02 02:17:40","revision":3724071},"1.6.0":{"tag":"1.6.0","author":"jisanewebmarketing","date":"2026-10-09 00:58:04","revision":3735744},"1.6.1":{"tag":"1.6.1","author":"jisanewebmarketing","date":"2026-10-12 00:55:48","revision":3740318}},"upgrade_notice":{"1.6.1":"<p>The Preferred Source button now sits after the AI summarize buttons and gains a left\/center\/right alignment option.<\/p>","1.6.0":"<p>New name: &quot;AI Summarize Buttons &amp; Google Preferred Source&quot;. Nothing to reconfigure \u2014 the slug, your settings and the settings-page URL are all unchanged.<\/p>","1.5.1":"<p>Adds a placement option (top \/ bottom \/ both) for the Google Preferred Source prompt and simplifies it to a one-click &quot;Add as Preferred Source&quot; button.<\/p>","1.5.0":"<p>Adds an optional Google &quot;Preferred Source&quot; invitation (off by default) and changes the default heading to &quot;Summarise via AI:&quot;. No action needed on upgrade; both are configurable under Settings &gt; Share to AI.<\/p>","1.4.2":"<p>Confirmed compatible with WordPress 7.1. No functional changes.<\/p>","1.4.1":"<p>Fixes clipboard sharing for Gemini and the other copy-to-paste tools \u2014 the prompt is now reliably copied to your clipboard before the tool opens, so you can paste it straight in.<\/p>","1.4.0":"<p>Fixes Gemini sharing (prompt now copies to clipboard and opens Gemini), adds DeepSeek, Mistral, Copilot, Qwen and Meta AI, per-post-type control, a per-post hide box, button sizes and a hide-on-mobile toggle. All existing settings migrate automatically.<\/p>","1.3.0":"<p>Adds built-in SVG icons for all six AI tools and a new &quot;Button Display Elements&quot; dropdown (Text + Icons \/ Icons only \/ Text only). Existing settings are preserved \u2014 the old &quot;Show Text Labels&quot; checkbox is migrated automatically on first load.<\/p>","1.2.0":"<p>Plugin display name changed to &quot;Share to AI \u2014 Buttons for ChatGPT, Perplexity &amp; More&quot;. The slug and your saved settings are unchanged \u2014 existing installs upgrade in place with no action needed.<\/p>","1.1.1":"<p>Security and compliance update addressing WordPress Plugin Review Team feedback: hardened inline CSS escaping and migrated all identifiers to a unique <code>ewebllsu_<\/code> prefix. Existing settings stored under the old <code>emls_settings<\/code> key will need to be re-saved once after upgrading.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":4},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3735743,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3735743,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3735743,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3735743,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.1","1.1.2","1.2.0","1.3.0","1.4.0","1.4.1","1.4.2","1.5.0","1.6.0","1.6.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3735743,"resolution":"1","location":"assets","locale":"","width":1440,"height":1000},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3724070,"resolution":"2","location":"assets","locale":"","width":1440,"height":1000},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3644105,"resolution":"3","location":"assets","locale":"","width":1440,"height":1000}},"screenshots":{"1":"The clean, card-based admin settings panel for configuring your AI buttons.","2":"The buttons displaying inline beneath a blog post.","3":"The floating sticky placement option on the left side of the screen."}},"plugin_section":[],"plugin_tags":[240481,216196,224606,280482,61155],"plugin_category":[55],"plugin_contributors":[264411],"plugin_business_model":[],"class_list":["post-296242","plugin","type-plugin","status-publish","hentry","plugin_tags-ai-summary","plugin_tags-chatgpt","plugin_tags-gemini","plugin_tags-preferred-source","plugin_tags-summarize","plugin_category-seo-and-marketing","plugin_contributors-jisanewebmarketing","plugin_committers-jisanewebmarketing"],"banners":{"banner":"https:\/\/ps.w.org\/ewebmarketing-llm-summariser\/assets\/banner-772x250.png?rev=3735743","banner_2x":"https:\/\/ps.w.org\/ewebmarketing-llm-summariser\/assets\/banner-1544x500.png?rev=3735743","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ewebmarketing-llm-summariser\/assets\/icon-128x128.png?rev=3735743","icon_2x":"https:\/\/ps.w.org\/ewebmarketing-llm-summariser\/assets\/icon-256x256.png?rev=3735743","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ewebmarketing-llm-summariser\/assets\/screenshot-1.png?rev=3735743","caption":"The clean, card-based admin settings panel for configuring your AI buttons."},{"src":"https:\/\/ps.w.org\/ewebmarketing-llm-summariser\/assets\/screenshot-2.png?rev=3724070","caption":"The buttons displaying inline beneath a blog post."},{"src":"https:\/\/ps.w.org\/ewebmarketing-llm-summariser\/assets\/screenshot-3.png?rev=3644105","caption":"The floating sticky placement option on the left side of the screen."}],"raw_content":"<!--section=description-->\n<p>Give your readers a one-click way to summarise your articles in their favourite AI assistant \u2014 and help your site get recommended in Google Search. This plugin adds a small, tasteful row of \"summarize with AI\" buttons to your posts, plus a one-click \"Add as Preferred Source\" button for Google.<\/p>\n\n<p><strong>What makes this plugin different:<\/strong> every other AI-summary plugin stops at the buttons. This one also adds Google's new <strong>Preferred Source<\/strong> button. When a reader taps it and selects your site, your content is more likely to show up in Google's Top Stories, AI Mode and AI Overviews with a \"preferred\" badge \u2014 a real visibility edge you won't find in other plugins.<\/p>\n\n<h4>Summarize with any AI, in one click<\/h4>\n\n<p>Readers can open your article in ChatGPT, Claude, Google Gemini, Perplexity, Grok and Google AI out of the box \u2014 plus optional DeepSeek, Mistral, Copilot, Qwen and Meta AI. Each button opens the chosen tool with a pre-filled, fully editable prompt that points to the current article, so the AI summarises <em>your<\/em> page, with your site credited as the source.<\/p>\n\n<p>You control the prompt for every tool, so you can ask each AI to summarise, pull key points, or answer specific questions \u2014 in any language and tone. Some tools (Gemini, DeepSeek, Mistral, Copilot, Qwen, Meta AI) don't accept a prompt in the URL; for those the button copies the prompt to the reader's clipboard and opens the tool, with a small \"paste it in\" confirmation. The rest open pre-filled automatically.<\/p>\n\n<h4>Become a Google Preferred Source<\/h4>\n\n<p>Turn on the optional \"Add as Preferred Source\" button and your readers can make your site a preferred source in Google Search in a single tap. Choose a clean no-script link or Google's official button, and place it at the top of your articles, the bottom, or both. (Your site must already appear in Google's source-preferences tool to be eligible.)<\/p>\n\n<h4>Key Features:<\/h4>\n\n<ul>\n<li><strong>Support for 11 AI Tools:<\/strong> ChatGPT, Claude, Perplexity, Gemini, Grok and Google AI enabled out of the box, plus optional DeepSeek, Mistral, Copilot, Qwen and Meta AI. Editable in the backend so you can update endpoints as platforms change.<\/li>\n<li><strong>Smart Sharing:<\/strong> URL-prompt tools open pre-filled; clipboard-only tools (like Gemini) copy the prompt and open the tool, with a confirmation toast \u2014 so the prompt always reaches the AI.<\/li>\n<li><strong>Custom Prompts:<\/strong> Write your own prompts in any language to guide how each AI interprets and summarises your content, using the <code>{url}<\/code> and <code>{sitename}<\/code> placeholders.<\/li>\n<li><strong>Per-Post-Type Control:<\/strong> Choose exactly which content types show the buttons \u2014 Posts, Pages, or any public custom post type.<\/li>\n<li><strong>Per-Post Opt-Out:<\/strong> An \"AI Summarize Buttons\" box in the post editor lets you hide the buttons on any individual post.<\/li>\n<li><strong>Flexible Placement &amp; Sizing:<\/strong> Inline (before\/after content) or sticky floating (left\/right), in three button sizes (Small \/ Normal \/ Large), with an option to hide the buttons on mobile.<\/li>\n<li><strong>Three Display Modes:<\/strong> Text + Icons (default), Icons only, or Text only.<\/li>\n<li><strong>Editable Heading:<\/strong> Set the label shown before the buttons (default \"Summarise via AI:\"), or leave it blank to hide it.<\/li>\n<li><strong>Google Preferred Source (optional):<\/strong> Invite readers to add your site as a preferred source in Google Search \u2014 shown in Top Stories, AI Mode and AI Overviews with a \"preferred\" badge. Choose a simple link (no external scripts) or Google's official button, and place it before, after, or both around your content.<\/li>\n<li><strong>Built-in Icons:<\/strong> Lightweight, brand-distinct inline SVG icons for every tool. Zero extra HTTP requests, scales perfectly on retina displays, fully accessible.<\/li>\n<li><strong>Customisation:<\/strong> Use the native WordPress colour picker to match each button to your brand theme.<\/li>\n<li><strong>Secure &amp; Sanitised:<\/strong> Fully compliant with WordPress escaping and sanitisation standards.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to third-party services only in the two optional cases below. With default settings, the plugin makes no external requests from your server.<\/p>\n\n<ol>\n<li><p>AI share buttons (reader-initiated): When a visitor clicks a share button, their own browser opens the chosen AI tool (for example chatgpt.com, claude.ai, perplexity.ai, gemini.google.com, x.com\/i\/grok, google.com, chat.deepseek.com, chat.mistral.ai, copilot.microsoft.com, chat.qwen.ai, meta.ai) with a pre-filled or clipboard-copied prompt. These are client-side navigations initiated by the visitor; your server sends nothing to these services, and the plugin transmits no personal data. Each destination has its own terms and privacy policy.<\/p><\/li>\n<li><p>Google Preferred Source \"Official Google button\" mode (optional, off by default): When \u2014 and only when \u2014 you set the Preferred Source option to \"Official Google button\", the plugin loads Google's publisher library from https:\/\/news.google.com\/swg\/js\/v1\/publisher.js to render Google's localised \"add to preferred sources\" button. This happens in the visitor's browser on pages where the button is shown. If you use the \"Simple link\" mode or leave the feature off, this script is never loaded. Google's terms: https:\/\/policies.google.com\/terms and privacy policy: https:\/\/policies.google.com\/privacy.<\/p><\/li>\n<\/ol>\n\n<h3>Trademarks<\/h3>\n\n<p>This plugin is an independent project and is not affiliated with, endorsed by, or sponsored by Google, OpenAI, Anthropic, Perplexity, xAI, Microsoft, Mistral AI, DeepSeek, Alibaba (Qwen) or Meta. Product names, logos and brands are the property of their respective owners and are used here only to describe which tools the buttons link to.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/ewebmarketing-llm-summariser<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Use the 'AI Summarize' settings screen (under Settings) to choose your content types, pick which AI tools to display, edit the prompts, turn on the Google Preferred Source button, and customise the colours and size.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20content%20types%20can%20show%20the%20buttons%3F\"><h3>Which content types can show the buttons?<\/h3><\/dt>\n<dd><p>Any public content type. In the settings you can tick Posts, Pages, and any custom post type registered on your site. The buttons appear on the single view of the types you select. You can also hide the buttons on an individual post using the \"AI Summarize Buttons\" box in the editor sidebar.<\/p><\/dd>\n<dt id=\"why%20does%20clicking%20gemini%20%28or%20deepseek%2C%20mistral%2C%20copilot%2C%20qwen%2C%20meta%20ai%29%20copy%20the%20prompt%20instead%20of%20pre-filling%20it%3F\"><h3>Why does clicking Gemini (or DeepSeek, Mistral, Copilot, Qwen, Meta AI) copy the prompt instead of pre-filling it?<\/h3><\/dt>\n<dd><p>Those tools do not accept a prompt through the URL. To make sure the prompt still reaches them, the button copies the prompt to your clipboard and opens the tool in a new tab, then shows a brief \"Prompt copied \u2014 paste with Ctrl\/Cmd+V\" message. Tools that do support URL prompts (ChatGPT, Claude, Perplexity, Grok, Google AI) open pre-filled automatically.<\/p><\/dd>\n<dt id=\"can%20i%20customise%20the%20default%20prompts%3F\"><h3>Can I customise the default prompts?<\/h3><\/dt>\n<dd><p>Yes \u2014 every prompt is fully editable per tool in the settings panel. Write in any language and any tone of voice to suit your audience, and use the <code>{url}<\/code> and <code>{sitename}<\/code> placeholders to inject the current page link and your site name into the prompt at runtime.<\/p><\/dd>\n<dt id=\"why%20does%20an%20ai%20tool%20give%20a%20security%20warning%20when%20i%20click%20a%20share%20button%3F\"><h3>Why does an AI tool give a security warning when I click a share button?<\/h3><\/dt>\n<dd><p>Some AI platforms, like Claude, have strict Prompt Injection and Cross-Site Scripting (XSS) protections. When a URL contains a pre-filled prompt, they may show a security banner to ensure the user actually intends to run the prompt.<\/p><\/dd>\n<dt id=\"what%20is%20the%20%22google%20preferred%20source%22%20option%3F\"><h3>What is the \"Google Preferred Source\" option?<\/h3><\/dt>\n<dd><p>Google lets readers choose preferred sources that then appear more often in Top Stories, AI Mode and AI Overviews with a \"preferred\" badge. This plugin can show an optional invitation on your posts so readers can add your site in one step. It is off by default. \"Simple link\" just links to Google's source-preferences tool and loads nothing extra; \"Official Google button\" renders Google's own localised button and loads a small script from news.google.com. Your site must already appear in Google's source-preferences tool to be eligible \u2014 see https:\/\/developers.google.com\/search\/docs\/appearance\/preferred-sources.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>The \"Add as Preferred Source\" button now always renders after the AI summarize buttons when they share the same position (previously it could appear above them).<\/li>\n<li>New: alignment option for the Preferred Source button \u2014 left (default), center, or right.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Renamed the plugin to \"AI Summarize Buttons &amp; Google Preferred Source\" so it's easier to find and clearly describes what it does (one-click AI summaries + the unique Google Preferred Source button). The plugin slug, your settings, and the settings-page URL are unchanged, so existing installs upgrade in place with nothing to reconfigure.<\/li>\n<li>Rewrote the description and admin copy to be clearer and benefit-focused, and refreshed the tags for discoverability.<\/li>\n<li>Added a Trademarks \/ affiliation notice.<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>New: a placement option for the Google Preferred Source prompt \u2014 before content (top of the article), after content (default), or both.<\/li>\n<li>Changed: removed the separate \"Preferred Source Label\" field. The link now uses a fixed, translatable \"Add as Preferred Source\" styled as a clean pill; the Official Google button continues to render Google's own localised label.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>New: Google \"Preferred Source\" promotion. Invite readers to add your site as a preferred source in Google Search (Top Stories, AI Mode and AI Overviews). Choose \"Simple link\" (no external scripts) or Google's \"Official button\" (loads Google's publisher.js). Off by default; configure it under Settings &gt; Share to AI. Implements https:\/\/developers.google.com\/search\/docs\/appearance\/preferred-sources.<\/li>\n<li>Changed: the default heading before the buttons is now \"Summarise via AI:\" (previously \"Summarise with AI:\"). It remains fully editable in the Heading Text field, and blank still hides it.<\/li>\n<li>Added an \"External services\" section to this readme documenting exactly when the plugin contacts third parties (and that, by default, it does not).<\/li>\n<li>Confirmed compatible with WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Confirmed compatible with WordPress 7.1 and updated \"Tested up to\" to 7.1. Reviewed against the 7.1 changes (iframed editor, client-side media processing, updated editor components, persistent toolbar, jQuery UI 1.14.2): the plugin's only editor touchpoint is a server-rendered meta box and its admin assets load only on its own settings page, so no compatibility changes were required.<\/li>\n<li>New: the heading shown before the buttons is now editable in the settings (\"Heading Text\"). Leave it blank to hide the label entirely.<\/li>\n<li>Changed: the default heading is now \"Summarise with AI:\" (previously \"Share via AI:\"), which more accurately describes what the buttons do. If you prefer the old wording, just set it in the new Heading Text field.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Fixed: the clipboard tools (Gemini, DeepSeek, Mistral, Copilot, Qwen, Meta AI) could open the tool but leave the clipboard empty, so there was nothing to paste. The button now copies the prompt <em>before<\/em> opening the new tab, while the page still has focus, and uses a synchronous copy method for reliability across browsers.<\/li>\n<li>Improved: if the browser blocks copying entirely, the on-screen message now tells the reader to copy the prompt manually instead of implying it succeeded.<\/li>\n<li>Note: Gemini and several other assistants do not support pre-filling a prompt through the URL (only browser extensions can do that), so this copy-and-paste flow is the intended, reliable behaviour. ChatGPT, Claude, Perplexity, Grok and Google AI continue to open pre-filled.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Fixed: Gemini (and other tools that ignore URL prompts) now reliably receive the prompt. Clicking the button copies the prompt to the clipboard, opens the tool, and shows a brief confirmation so the reader knows to paste. This resolves the long-standing issue where Gemini opened with an empty input.<\/li>\n<li>New: Five additional AI tools \u2014 DeepSeek, Mistral, Copilot, Qwen and Meta AI. They ship disabled by default; enable any you want in the settings.<\/li>\n<li>New: Per-post-type control \u2014 show the buttons on Posts, Pages, or any public custom post type, chosen individually.<\/li>\n<li>New: Per-post \"Share to AI\" meta box to hide the buttons on a specific post.<\/li>\n<li>New: Button size option (Small \/ Normal \/ Large) and a \"hide on mobile\" toggle.<\/li>\n<li>Improved: Google AI Mode now uses the standard <code>udm=50<\/code> search URL (the non-standard <code>aep=11<\/code> parameter has been removed). Existing installs are migrated automatically.<\/li>\n<li>Security: The new clipboard buttons carry the prompt in <code>data-*<\/code> attributes that are escaped at output and passed through the plugin's strict <code>wp_kses()<\/code> safelist; the frontend helper is a tiny dependency-free vanilla script with no external requests.<\/li>\n<li>All prior settings are migrated automatically on upgrade \u2014 nothing needs to be re-saved.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Added brand-distinct inline SVG icons for ChatGPT, Claude, Perplexity, Gemini, Grok and Google AI. Icons inherit the button's text colour via <code>currentColor<\/code> so they always match your theme.<\/li>\n<li>Replaced the \"Show Text Labels\" checkbox with a \"Button Display Elements\" dropdown offering three options: <strong>Text + Icons<\/strong> (default), <strong>Icons only<\/strong>, and <strong>Text only<\/strong>.<\/li>\n<li>Existing installs auto-migrate the old <code>show_labels<\/code> value to the equivalent new mode on first load \u2014 no settings get lost.<\/li>\n<li>Icon-only buttons receive a proper <code>aria-label<\/code> for screen readers; visible text continues to provide the accessible name in the other two modes.<\/li>\n<li>Security: SVG output is run through a custom strict <code>wp_kses()<\/code> safelist (only the exact SVG subset the plugin produces is permitted \u2014 no script, style, or event-handler attributes).<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Renamed the plugin to \"Share to AI \u2014 Buttons for ChatGPT, Perplexity &amp; More\" to better describe what it does. The plugin slug, options, and settings page URL are unchanged, so existing installs continue to work with no migration required.<\/li>\n<li>Rewrote the default prompts in neutral, international English so the plugin reads well to a global audience.<\/li>\n<li>Updated the Plugin URI and Author URI to the new <code>ewebmarketing.au<\/code> domain.<\/li>\n<li>Tidied admin copy and the \"View details\" modal to match the new plugin name.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Security: Hardened the inline CSS pipeline \u2014 LLM array keys are now validated against a strict whitelist and passed through <code>sanitize_html_class()<\/code> before being interpolated into any CSS selector.<\/li>\n<li>Security: Hex colour values are re-validated with <code>sanitize_hex_color()<\/code> at output time (escape-late) before being injected into inline CSS, eliminating any possibility of CSS breakout from a corrupted option.<\/li>\n<li>Security: All dynamic output now uses context-appropriate escaping at the moment of echo (<code>esc_html()<\/code>, <code>esc_attr()<\/code>, <code>esc_url()<\/code>, <code>esc_textarea()<\/code>, <code>wp_kses_post()<\/code>, <code>wp_strip_all_tags()<\/code>), in line with \"escape-late\" best practice.<\/li>\n<li>Compliance: Renamed all PHP identifiers to use the unique <code>ewebllsu_<\/code> \/ <code>EWEBLLSU_<\/code> prefix (class, methods, option name, settings group, hooks, constants, script\/style handles, CSS classes) to avoid collisions with other plugins\/themes.<\/li>\n<li>Compliance: Renamed the stored option from <code>emls_settings<\/code> to <code>ewebllsu_settings<\/code>; settings group renamed to <code>ewebllsu_settings_group<\/code>.<\/li>\n<li>Hardened the LLM whitelist in <code>sanitize_options()<\/code> so only known keys are ever written to the database.<\/li>\n<li>Made all user-facing strings translatable via the <code>ewebmarketing-llm-summariser<\/code> text domain.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Completely rebranded to EwebMarketing LLM Summariser to comply with official WordPress Plugin Repository guidelines.<\/li>\n<li>Fixed text domain configuration to strictly match WordPress directory requirements.<\/li>\n<li>Set explicit versioning on <code>wp_register_style()<\/code> to prevent frontend and admin caching issues.<\/li>\n<li>Removed all external icon libraries (Font Awesome \/ SVGs) for maximum performance and strict security compliance.<\/li>\n<li>Exposed the Base URL fields in the admin settings so users can manually update LLM routing endpoints as platforms (like Gemini) change their structures.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release on the WordPress Plugin Repository!<\/li>\n<li>Native WP Colour Picker integration.<\/li>\n<li>Comprehensive output escaping and strict data sanitisation.<\/li>\n<li>Flexible display settings (Inline or Sticky placement).<\/li>\n<\/ul>","raw_excerpt":"Add one-click AI summarize buttons (ChatGPT, Claude, Gemini, Perplexity &amp; more) to your posts, plus a Google Preferred Source button.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/296242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=296242"}],"author":[{"embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jisanewebmarketing"}],"wp:attachment":[{"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=296242"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=296242"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=296242"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=296242"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=296242"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=296242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}