Nota
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.getnota.postData.title.setnota.postData.excerpt.getnota.postData.excerpt.setnota.postData.slug.getnota.postData.slug.setnota.postData.metaTitle.getnota.postData.metaTitle.setnota.postData.metaDescription.getnota.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;
} );
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.
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 )
`
