Nota

plugin banner

Nota’s assistive AI tools help publishers create headlines, summaries, SEO keywords and more.

Author:heynota (profile at wordpress.org)
WordPress version required:
WordPress version tested:6.9.4
Plugin version:0.21.2
Added to WordPress repository:28-09-2023
Last updated:13-03-2026
Rating, %:0
Rated by:0
Plugin URI:
Total downloads:16 730
Active installs:300+
plugin download
Click to start download

Nota is a SaaS company building AI-enabled tools to streamline content creation and distribution. Their assistive AI tools help publishers, marketers and content creators generate headlines, summaries, SEO keywords and more.

Nota is taking the pain points out of the content creation process so you can focus on what really matters: your story.

Dissect Content with Speed.

The Nota plugin is a time-saving tool for editorial, marketing and content teams focused on optimizations—generating headlines, summaries, top quotes, key points, SEO keywords and categories. The plugin utilizes large language models to generate AI responses, returning robust copy results.

Nota runs text through uber-powerful AI and ML tools to break down all that content into workable outputs. No prompts or queries, no AI learning curves, just quick-and-easy text applications. Analyze a post and tailor the outputs for more, less or just different results with the push of a button. If you’re looking for a human touch, you can edit the outputs directly to your liking.

Custom Fields

When users choose to use outputs provided by Nota, the plugin will update the appropriate fields on the post. For example, selecting a “Headline” will update the post title.

This behaviour can be changed if custom fields are required, by using the @wordpress/hooks functionality.

Each field has a corresponding getter and setter function. The filter names follow the pattern: nota.postData.<fieldName>.get and nota.postData.<fieldName>.set. The following filters are available:

  • nota.postData.title.get
  • nota.postData.title.set
  • nota.postData.excerpt.get
  • nota.postData.excerpt.set
  • nota.postData.slug.get
  • nota.postData.slug.set
  • nota.postData.metaTitle.get
  • nota.postData.metaTitle.set
  • nota.postData.metaDescription.get
  • nota.postData.metaDescription.set

For example, to use a custom field for the title, you would implement the following:

const customTitleMetaKey = 'my-custom-meta-key'

const getTitle = () => {
  return wp.data.select('core/editor').getEditedPostAttribute('meta')[customTitleMetaKey]
}
wp.hooks.addFilter('nota.postData.title.get', 'custom/namespace', () => getTitle )

const setTitle = (nextValue) => {
  wp.data.dispatch('core/editor').editPost({ meta: { [customTitleMetaKey]: nextValue } })
}
wp.hooks.addFilter('nota.postData.title.set', 'custom/namespace', () => setTitle )

Access Control

Nota supports restricting plugin access to specific users via a WordPress filter.

For advanced use cases, you can use the nota_tools_user_allowed filter to implement custom access logic:

<?php
/**
 * Filter: nota_tools_user_allowed
 * 
 * @param bool    $allowed Whether the user is currently allowed (default: user can edit_posts).
 * @param WP_User $user    The current user object.
 * @param array   $context Context about where the check is being made.
 *                         Keys:
 *                         - 'area': The feature area being accessed.
 *                           Values: 'post_tools', 'draft', 'dashboard', 'news'.
 *                         - 'post_id': The post ID if applicable.
 */
add_filter( 'nota_tools_user_allowed', 'my_custom_nota_access', 10, 3 );

Example: Allow access based on a custom user profile field:

<?php
add_filter( 'nota_tools_user_allowed', function( $allowed, $user, $context ) {
    // Only allow users with 'nota_access' meta set to 'yes'
    $nota_access = get_user_meta( $user->ID, 'nota_access', true );
    return $nota_access === 'yes';
}, 10, 3 );

Example: Allow access based on email domain (e.g., for pilot rollouts):

<?php
add_filter( 'nota_tools_user_allowed', function( $allowed, $user, $context ) {
    // Only allow users with @californiapost.com email addresses
    $email = $user->user_email;
    return substr( $email, -strlen( '@californiapost.com' ) ) === '@californiapost.com';
}, 10, 3 );

Example: Combine default access with additional custom logic:

<?php
add_filter( 'nota_tools_user_allowed', function( $allowed, $user, $context ) {
    // If already allowed by default, also require specific role
    if ( $allowed ) {
        return in_array( 'editor', $user->roles, true );
    }
    return false;
}, 10, 3 );

Developer Filters

Nota provides several filters for customization:

nota_tools_user_allowed

Controls whether a user can access Nota tools. See “Access Control” section above.

nota_tools_supported_post_types

Customize which post types display Nota tools:

<?php
add_filter( 'nota_tools_supported_post_types', function( $post_types ) {
    // Add custom 'article' post type
    $post_types[] = 'article';
    return $post_types;
} );

nota_tools_supported_components

Enable or disable specific Nota tool components:

<?php
add_filter( 'nota_tools_supported_components', function( $components ) {
    // Disable hashtags component
    $components['hashtags'] = false;
    return $components;
} );

Screenshots