diff --git a/citecue.php b/citecue.php index 698fc23..bd7f0e6 100644 --- a/citecue.php +++ b/citecue.php @@ -3,11 +3,11 @@ * Plugin Name: CiteCue AI Auto-Fix * Plugin URI: https://github.com/citecue/wordpress-plugin * Description: Serves CiteCue-optimized versions of your pages to AI bots and crawlers, adds CiteCue's enriched SEO metadata to your live pages, and lets CiteCue push brand-building draft content into WordPress. - * Version: 1.2.0 + * Version: 1.2.1 * Requires at least: 5.8 * Requires PHP: 7.4 * Author: CiteCue - * Author URI: https://app.citecue.com + * Author URI: https://citecue.com * License: GPL-2.0-or-later * License URI: https://www.gnu.org/licenses/gpl-2.0.html * Text Domain: citecue-ai-auto-fix @@ -138,7 +138,7 @@ return; } -define( 'CITECUE_VERSION', '1.2.0' ); +define( 'CITECUE_VERSION', '1.2.1' ); define( 'CITECUE_PLUGIN_FILE', __FILE__ ); define( 'CITECUE_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); diff --git a/includes/class-citecue-admin.php b/includes/class-citecue-admin.php index 5ec1f1f..39fc727 100644 --- a/includes/class-citecue-admin.php +++ b/includes/class-citecue-admin.php @@ -68,6 +68,7 @@ public function register() { add_action( 'admin_post_citecue_flush_cache', array( $this, 'handle_flush_cache' ) ); add_action( 'admin_post_citecue_regen_secret', array( $this, 'handle_regen_secret' ) ); add_filter( 'plugin_action_links_' . plugin_basename( CITECUE_PLUGIN_FILE ), array( $this, 'action_links' ) ); + add_filter( 'plugin_row_meta', array( $this, 'row_meta' ), 10, 2 ); } /** @@ -112,6 +113,27 @@ public function action_links( $links ) { return $links; } + /** + * Adds a link to CiteCue in this plugin's row on the Plugins screen. + * + * `plugin_row_meta` fires for every row, so the file has to be checked — + * unlike `plugin_action_links_{$file}`, which is already ours. + * + * @param array $meta Existing row meta. + * @param string $file Plugin file the row is for. + * @return array + */ + public function row_meta( $meta, $file ) { + if ( plugin_basename( CITECUE_PLUGIN_FILE ) !== $file ) { + return $meta; + } + + $meta[] = '' + . esc_html__( 'CiteCue.com', 'citecue-ai-auto-fix' ) . ''; + + return $meta; + } + /** * The settings page URL. * @@ -607,6 +629,15 @@ private function render_setup() { +

+ citecue.com' + ); + ?> +

@@ -981,6 +1012,15 @@ private function render_status_card() { action_button( 'citecue_verify_install', __( 'Verify installation', 'citecue-ai-auto-fix' ) ); ?> action_button( 'citecue_disconnect', __( 'Disconnect', 'citecue-ai-auto-fix' ) ); ?>

+

+ citecue.com' + ); + ?> +

` and adds only what none of them emitted, so there is never a second title or canonical. @@ -22,7 +22,7 @@ CiteCue AI Auto-Fix is the WordPress end of CiteCue, an answer engine optimizati * **Content from CiteCue** — a signed endpoint through which CiteCue can push new brand-building content (content briefs, FAQ packs, gap-filling pages) into WordPress as drafts for your review. * **WooCommerce-aware** — cart, checkout, account pages and cart-modifying links are never intercepted, while product and shop pages are served optimized. Pushed content can also create or enrich WooCommerce products (draft by default, matched by SKU with explicit consent). -This plugin requires a CiteCue account (citecue.com) and does nothing until you connect one. See "External services" below for exactly what is sent where. +This plugin requires a CiteCue account — [citecue.com](https://citecue.com) — and does nothing until you connect one. See "External services" below for exactly what is sent where. = What the plugin actually does = @@ -34,8 +34,12 @@ Everything above happens on a live request, and that is where the design decisio * **It never makes a visitor wait on a third party.** The render path reads cache only; a URL with nothing cached yet renders untouched and the fetch is queued to WP-Cron. * **Content flows back in.** The signed `citecue/v1` endpoint is how CiteCue delivers new content into WordPress — as drafts, with replayed signatures rejected — so the loop from "this page is missing" to "this page exists" closes without anyone copying and pasting. +The service behind all of it is at [citecue.com](https://citecue.com). + == Installation == +You need a CiteCue account before step 2 — sign up at [citecue.com](https://citecue.com). + 1. Install and activate the plugin from Plugins → Add New, or upload it under Plugins → Add New → Upload Plugin. 2. Go to Settings → CiteCue and click "Connect to CiteCue". 3. Confirm the project for this site in CiteCue. You are redirected back and the plugin checks itself. @@ -47,10 +51,10 @@ Until you complete step 2, the plugin makes no outbound requests at all. == External services == -This plugin is the WordPress end of CiteCue, a hosted service at https://citecue.com that generates AI-optimized versions of your pages. The optimized pages, your llms.txt and the pushed draft content are all produced by that service, so the plugin cannot work without it. Nothing below happens until an administrator connects the site. +This plugin is the WordPress end of CiteCue, a hosted service at [citecue.com](https://citecue.com) that generates AI-optimized versions of your pages. The optimized pages, your llms.txt and the pushed draft content are all produced by that service, so the plugin cannot work without it. Nothing below happens until an administrator connects the site. -Terms of Service: https://citecue.com/terms -Privacy Policy: https://citecue.com/privacy +Terms of Service: [citecue.com/terms](https://citecue.com/terms) +Privacy Policy: [citecue.com/privacy](https://citecue.com/privacy) The service is reached at `https://app.citecue.com` (or the origin you pin with the `CITECUE_API_BASE` constant, for self-hosted CiteCue deployments). @@ -136,6 +140,9 @@ Yes. Store pages (cart, checkout, account, all WooCommerce endpoints) are never == Upgrade Notice == += 1.2.1 = +Adds links to citecue.com from the settings screen, the Plugins list and this page. No change to what the plugin does on a request; nothing to reconfigure. + = 1.2.0 = Adds page enhancements: a facts-and-FAQ section CiteCue composes for pages you already have, placed on the live page. Existing connections need one reconnect before CiteCue will send them — Settings → CiteCue will ask. @@ -153,6 +160,12 @@ The plugin folder is now citecue-ai-auto-fix. If you installed 1.0.0 by uploadin == Changelog == += 1.2.1 = +* The settings screen now says where a CiteCue account comes from. Before connecting it links to citecue.com; once connected it names CiteCue as the source of what the site serves. The Plugins list gets a CiteCue.com link in the plugin's row. +* This page now links to citecue.com in its own text. The directory does not turn a bare URL into a link, so the URLs in "External services" — including the terms and privacy policy — have been rendered as links rather than left as plain text. +* The `Author URI` header points at citecue.com rather than at `app.citecue.com`, the login app. That is the link behind "By CiteCue" on the Plugins screen in wp-admin. +* Documentation only otherwise: the description no longer leads with llms.txt, and several claims about coverage and speed were narrowed to what the code actually guarantees. + = 1.2.0 = * New: page enhancements. CiteCue composes a collapsed facts-and-FAQ section for a page you already have — built from your answered facts and grounded FAQ entries, never generated by a model — and this release places it on that page, immediately before ``. * The block is placed exactly as CiteCue composed it. It is sanitized before it is sent and capped at 32 KB on the wire, and this plugin checks the cap again before placing it; nothing is re-escaped or run through the content filters, either of which would break the markup or run a shortcode quoted inside an answer.