Curator AI
Curator AI is a free plugin that helps you take care of your WordPress site without turning it into a second job. It writes the small bits of SEO text that matter, points out posts that have gone stale, and runs quality checks so you can fix problems before your visitors (or Google) notice them. It is built for the person who runs the site, not just the developer who set it up. If you have ever looked at a post and wondered whether the headline Google shows is any good, whether your older articles are quietly aging, or whether any of your images are missing their descriptions, this plugin does that looking for you and tells you plainly what it found. You work with it in two places. Right inside the post editor there is a “Curator AI” sidebar where you can generate a meta title or meta description, score a post’s readability, refresh a stale post, or scan it for broken links. And there is a dashboard under “Curator AI” in your admin area with five simple screens: Overview, Automation, Audit Reports, Bulk Operations, and Settings. Here is what it can do, in three groups. SEO writing help Write a meta title, the clickable headline that shows up in Google search results. Write a meta description, the short summary that sits under that title in Google. Write alt text for an image, the description that helps screen readers and search engines understand the picture. If you use Yoast SEO or Rank Math (two popular SEO plugins), it writes these straight into them. If you use neither, it just stores them for you. Keeping content fresh Find stale posts, the ones you have not touched in a long time. Refresh a post by simply updating its date, or by rewriting the parts that have gone out of date. Site health checks (these run on your own server, no outside help needed) Give a post a readability score so you know how easy it is to read. Find posts that are missing a meta title or meta description. Find images that have no alt text. Find thin content, meaning posts that are too short to be useful. Check a post for broken links. Measure page speed and Core Web Vitals, which are Google’s measures of how fast and steady a page feels, using Google PageSpeed Insights. This one is optional and sends the page address to Google to run the test. A quick, honest note on what needs help from elsewhere. The four AI writing jobs (the three SEO text features plus rewriting a stale post) need the free official “AI” plugin from WordPress.org. That separate plugin is where you connect your provider, such as OpenAI, Anthropic, or Google, and where your API key lives. Curator AI never holds or touches your API key. Everything else, including all the audits and the simple date refresh, works fine without the AI plugin. On privacy, plainly: Curator AI holds no API keys. The AI writing features send your post content to whatever provider you set up in the AI plugin, and that only happens when you click a button to ask for it. The optional page speed check sends the page address to Google. Every other audit runs on your own server and sends nothing out. One more thing worth knowing. The automation rules, which can run tasks when you save a post or on a schedule, are all turned off when you install. Nothing runs on its own until you decide to switch it on. This plugin needs WordPress 7.0 or newer and PHP 8.1 or newer. External services This plugin can connect to two outside services, and only when you choose to use the features that need them. WordPress AI Client. The AI writing features pass your prompt and the relevant post content to the AI provider you set up in the official “AI” plugin (for example OpenAI, Anthropic, or Google). This happens only when you trigger an AI feature. Curator AI does not store or send any API key of its own. Google PageSpeed Insights. The optional page speed audit sends the address of the page you are testing to Google so Google can measure how fast it loads. No post content is sent.
Top keywords
- ai16×2.22%
- google13×1.81%
- post12×1.67%
- page7×0.97%
- curator6×0.83%
- curator ai6×0.83%
- meta6×0.83%
- content5×0.69%
- seo5×0.69%
- api4×0.56%
- description4×0.56%
- find4×0.56%
Post Author IP
This plugin records the IP address of the original post author when a post first gets created. The admin listing of posts is amended with a new “Author IP” column that shows the IP address of the author who first saved the post. The plugin is unable to provide IP address information for posts that were created prior to the use of this plugin. Links: Plugin Homepage | Plugin Directory Page | GitHub | Author Homepage Hooks The plugin is further customizable via four filters. Typically, code making use of filters should ideally be put into a mu-plugin or site-specific plugin (which is beyond the scope of this readme to explain). c2c_show_post_author_ip_column (filter) The ‘c2c_show_post_author_ip_column’ filter allows you to determine if the post author IP column should appear in the admin post listing table. Your hooking function can be sent 1 argument: Argument : $show_column (bool) Should the column be shown? Default true. Example: /** * Don't show the post author IP column except to admins. * * @param bool $show_column Should the column be shown? Default true. * @return bool */ function post_author_ip_column_admin_only( $show ) { if ( ! current_user_can( 'manage_options' ) ) { $show = false; } return $show; } add_filter( 'c2c_show_post_author_ip_column', 'post_author_ip_column_admin_only' ); c2c_get_post_author_ip (filter) The ‘c2c_get_post_author_ip’ filter allows you to customize the value stored as the post author IP address. Your hooking function can be sent 2 arguments: Arguments : $ip (string) The post author IP address. $post_id (int) The post ID. Example: /** * Store all IP addresses from local subnet IP addresses as the same IP address. * * @param string $ip The post author IP address. * @param int $post_id The post ID. * @return string */ function customize_post_author_ip( $ip, $post_id ) { if ( 0 === strpos( $ip, '192.168.' ) ) { $ip = '192.168.1.1'; } return $ip; } add_filter( 'c2c_get_post_author_ip', 'customize_post_author_ip', 10, 2 ); c2c_get_current_user_ip (filter) The ‘c2c_get_current_user_ip’ filter allows you to customize the current user’s IP address, as used by the plugin. Your hooking function can be sent 1 argument: Argument : $ip (string) The post author IP address. Example: /** * Overrides localhost IP address. * * @param string $ip The post author IP address. * @param int $post_id The post ID. * @return string */ function customize_post_author_ip( $ip, $post_id ) { if ( 0 === strpos( $ip, '192.168.' ) ) { $ip = '192.168.1.1'; } return $ip; } add_filter( 'c2c_get_post_author_ip', 'customize_post_author_ip', 10, 2 ); c2c_post_author_ip_allowed (filter) The ‘c2c_post_author_ip_allowed’ filter allows you to determine on a per-post basis if the post author IP should be stored. Your hooking function can be sent 3 arguments: Arguments : $allowed (bool) Can post author IP be saved for post? Default true. $post_id (int) The post ID. $ip (string) The post author IP address. Example: /** * Don't bother storing localhost IP addresses. * * @param bool $allowed Can post author IP be saved for post? Default true. * @param int $post_id The post ID. * @param string $ip The post author IP address. * @return string */ function disable_localhost_post_author_ips( $allowed, $post_id, $ip ) { if ( $allowed && 0 === strpos( $ip, '192.168.' ) ) { $allowed = false; } return $allowed; } add_filter( 'c2c_post_author_ip_allowed', 'disable_localhost_post_author_ips', 10, 3 );