{"id":303174,"date":"2026-04-30T13:01:45","date_gmt":"2026-04-30T13:01:45","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/nota-prepublish-checker\/"},"modified":"2026-05-01T14:42:56","modified_gmt":"2026-05-01T14:42:56","slug":"nota-prepublish-checker","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/nota-prepublish-checker\/","author":23485320,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.7.1","stable_tag":"1.7.1","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"NOTA Prepublish Checker","header_author":"NOTA Labs","header_description":"\u6295\u7a3f\u30fb\u56fa\u5b9a\u30da\u30fc\u30b8\u306e\u516c\u958b\u524d\u30c1\u30a7\u30c3\u30af\u3092\u81ea\u52d5\u3067\u884c\u3044\u3001\u8a2d\u5b9a\u6f0f\u308c\u30fb\u5165\u529b\u6f0f\u308c\u30fb\u30eb\u30fc\u30eb\u9055\u53cd\u3092\u8b66\u544a\u3059\u308b\u30d7\u30e9\u30b0\u30a4\u30f3\u3067\u3059\u3002","assets_banners_color":"4a8b82","last_updated":"2026-05-01 14:42:56","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/nota-prepublish-checker\/","header_author_uri":"https:\/\/profiles.wordpress.org\/notalabs\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":100,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.6.1":{"tag":"1.6.1","author":"notalabs","date":"2026-04-30 13:00:09"},"1.7.0":{"tag":"1.7.0","author":"notalabs","date":"2026-04-30 14:00:10"},"1.7.1":{"tag":"1.7.1","author":"notalabs","date":"2026-05-01 14:42:56"}},"upgrade_notice":{"1.5.0":"<p>English translation is now bundled. Existing Japanese users are unaffected.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3519537,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3519537,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3519537,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3519537,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.6.1","1.7.0","1.7.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3519555,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3519555,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3519575,"resolution":"3","location":"assets","locale":""}},"screenshots":{"1":"Settings page \u2014 toggle checks, set thresholds, choose target post types.","2":"Meta box on the edit screen \u2014 summary badge at the top, problem items first, passed items collapsible.","3":"Posts list column \u2014 NG \/ warning count badges plus the exact item names that failed."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[10674,261548,2970,9014,186],"plugin_category":[55],"plugin_contributors":[261549],"plugin_business_model":[],"class_list":["post-303174","plugin","type-plugin","status-publish","hentry","plugin_tags-checker","plugin_tags-prepublish","plugin_tags-publish","plugin_tags-quality","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-notalabs","plugin_committers-notalabs"],"banners":{"banner":"https:\/\/ps.w.org\/nota-prepublish-checker\/assets\/banner-772x250.png?rev=3519537","banner_2x":"https:\/\/ps.w.org\/nota-prepublish-checker\/assets\/banner-1544x500.png?rev=3519537","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/nota-prepublish-checker\/assets\/icon-128x128.png?rev=3519537","icon_2x":"https:\/\/ps.w.org\/nota-prepublish-checker\/assets\/icon-256x256.png?rev=3519537","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/nota-prepublish-checker\/assets\/screenshot-1.png?rev=3519555","caption":"Settings page \u2014 toggle checks, set thresholds, choose target post types."},{"src":"https:\/\/ps.w.org\/nota-prepublish-checker\/assets\/screenshot-2.png?rev=3519555","caption":"Meta box on the edit screen \u2014 summary badge at the top, problem items first, passed items collapsible."},{"src":"https:\/\/ps.w.org\/nota-prepublish-checker\/assets\/screenshot-3.png?rev=3519575","caption":"Posts list column \u2014 NG \/ warning count badges plus the exact item names that failed."}],"raw_content":"<!--section=description-->\n<p>NOTA Prepublish Checker helps site owners catch common mistakes <strong>before<\/strong> a post goes live \u2014 missing featured image, no category, too-short content, unintended noindex, and more. All checks run inside the WordPress admin with no external services.<\/p>\n\n<p><strong>Main features<\/strong><\/p>\n\n<ul>\n<li>Per-post meta box on the editor screen showing pass \/ warning \/ error for each check<\/li>\n<li>Status column on the posts list with count badges and item names, so you can spot low-quality drafts at a glance<\/li>\n<li>On-save warning notice listing every item that still needs attention (publish is not blocked)<\/li>\n<li>Admin settings page to toggle individual checks, adjust thresholds, and choose which post types to check<\/li>\n<li>Works on both Gutenberg (block editor) and Classic Editor<\/li>\n<li>Japanese and English admin UI included; easy to translate to other languages<\/li>\n<li>No external API, no account, no license key<\/li>\n<\/ul>\n\n<p><strong>Checks included (9 total)<\/strong><\/p>\n\n<ol>\n<li>Title missing<\/li>\n<li>Featured image not set<\/li>\n<li>Category missing \/ only default category<\/li>\n<li>Tags missing or below minimum count<\/li>\n<li>Excerpt missing<\/li>\n<li>noindex status (WordPress core + Yoast SEO \/ All in One SEO \/ SEOPress \/ Rank Math)<\/li>\n<li>Content length below minimum (HTML tags excluded)<\/li>\n<li>Too few links in content<\/li>\n<li>Too few images in content<\/li>\n<\/ol>\n\n<p>Each check can be turned off, and each numeric threshold (minimum content length, minimum number of tags \/ links \/ images) is configurable.<\/p>\n\n<p><strong>Who it's for<\/strong><\/p>\n\n<ul>\n<li>Individual WordPress bloggers<\/li>\n<li>Affiliate and niche site owners<\/li>\n<li>Small editorial teams who want consistent quality<\/li>\n<li>Anyone who currently checks posts manually before publishing<\/li>\n<\/ul>\n\n<p>A commercial Pro add-on with publish blocking is available separately: https:\/\/notalabs.lemonsqueezy.com\/checkout\/buy\/db60d640-b20a-452a-8c8d-84f880b4218b. The free plugin works on its own.<\/p>\n\n<h3>Current limitations<\/h3>\n\n<ul>\n<li>Publish action is not blocked (warning only).<\/li>\n<li>noindex check covers only WordPress core setting + four major SEO plugins (Yoast SEO, All in One SEO, SEOPress, Rank Math).<\/li>\n<li>Content statistics are based on the stored post content HTML. Very complex page-builder output may not be counted perfectly.<\/li>\n<li>Real-time block-level updates (Gutenberg) are not provided; results refresh on save or via the Re-check button.<\/li>\n<\/ul>\n\n<h3>Pro candidates (future roadmap)<\/h3>\n\n<p>The free version focuses on the minimum useful feature set. The following are tracked as potential Pro features:<\/p>\n\n<ul>\n<li>Per-category required rules<\/li>\n<li>Required custom fields<\/li>\n<li>Category-specific required tags<\/li>\n<li>Enforced publish block on errors<\/li>\n<li>Bulk re-check and CSV export<\/li>\n<li>Per-role rule control<\/li>\n<li>Per-post-type detailed rules<\/li>\n<li>Advanced SEO plugin integration (meta description, canonical, etc.)<\/li>\n<li>Team-oriented shared rule sets<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>wp-prepublish-checker<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or upload the ZIP via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen.<\/li>\n<li>Go to <strong>Settings \u2192 Prepublish Checker<\/strong> to adjust check items and thresholds (defaults work out of the box).<\/li>\n<li>Open any post or page to see the <strong>Prepublish Checker<\/strong> meta box with live results.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20there%20a%20pro%20version%3F\"><h3>Is there a Pro version?<\/h3><\/dt>\n<dd><p>Yes. NOTA Prepublish Checker Pro is an optional commercial add-on for users who need enforced publish blocking. It adds publish blocking, administrator bypass, and one-click updates. The free plugin works on its own.<\/p>\n\n<p>Buy Pro here: https:\/\/notalabs.lemonsqueezy.com\/checkout\/buy\/db60d640-b20a-452a-8c8d-84f880b4218b<\/p><\/dd>\n<dt id=\"does%20it%20block%20publishing%20when%20errors%20are%20found%3F\"><h3>Does it block publishing when errors are found?<\/h3><\/dt>\n<dd><p>No. The current version shows a strong warning notice on save but does not block the publish action. The optional Pro add-on described above adds publish blocking.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20gutenberg%20and%20classic%20editor%3F\"><h3>Does it work with Gutenberg and Classic Editor?<\/h3><\/dt>\n<dd><p>Yes. The meta box is registered the standard WordPress way and appears in both editors.<\/p><\/dd>\n<dt id=\"does%20it%20support%20custom%20post%20types%3F\"><h3>Does it support custom post types?<\/h3><\/dt>\n<dd><p>Yes. The settings page lists all public post types; tick the ones you want checked.<\/p><\/dd>\n<dt id=\"is%20an%20internet%20connection%20required%3F\"><h3>Is an internet connection required?<\/h3><\/dt>\n<dd><p>No. All checks run locally inside your WordPress admin. No external API is used.<\/p><\/dd>\n<dt id=\"is%20it%20translation-ready%3F\"><h3>Is it translation-ready?<\/h3><\/dt>\n<dd><p>Yes. Full i18n is implemented. Japanese (<code>ja<\/code>) and English (<code>en_US<\/code>) are bundled. A <code>.pot<\/code> template is included in <code>\/languages\/<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.7.1<\/h4>\n\n<ul>\n<li>Documentation only: mention the optional commercial Pro add-on in the description and FAQ. No code or behavior changes.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>Added extension hooks for add-ons (developer-facing only; no UI changes)<\/li>\n<li>nota_pc_check_results filter \u2014 modify the array of check results<\/li>\n<li>nota_pc_settings filter \u2014 modify resolved settings at runtime<\/li>\n<li>nota_pc_target_post_types filter \u2014 adjust which post types are checked<\/li>\n<li>nota_pc_register_checks action \u2014 register additional check classes<\/li>\n<li>nota_pc_after_save_check action \u2014 react to save-time check results<\/li>\n<li>nota_pc_publish_notice_html filter \u2014 wrap or replace the publish-time notice HTML<\/li>\n<li>nota_pc_meta_box_before_content \/ nota_pc_meta_box_after_content actions \u2014 render extra UI inside the meta box<\/li>\n<li>No visual or behavior changes for end users<\/li>\n<\/ul>\n\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>Renamed plugin slug and text domain from wp-prepublish-checker to nota-prepublish-checker (WordPress.org reserves \"wp\" prefix)<\/li>\n<li>Removed manual load_plugin_textdomain call (WordPress.org now auto-loads translations by slug)<\/li>\n<li>Fixed escaping of settings URL in the activation notice<\/li>\n<li>Moved translators: comments to be directly above the i18n function call (Plugin Check compliance)<\/li>\n<li>Tested up to WordPress 6.9<\/li>\n<li>Short description trimmed to fit 150-character limit<\/li>\n<li>No functional changes<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Renamed the plugin to NOTA Prepublish Checker<\/li>\n<li>Updated all display-name references in the UI, readme, and translations<\/li>\n<li>Plugin slug (folder \/ text domain) unchanged<\/li>\n<\/ul>\n\n<h4>1.5.3<\/h4>\n\n<ul>\n<li>Updated plugin author metadata (Author: NOTA Labs, Contributors: notalabs) for WordPress.org submission<\/li>\n<li>Plugin URI set to the canonical WordPress.org URL<\/li>\n<li>No functional changes<\/li>\n<\/ul>\n\n<h4>1.5.2<\/h4>\n\n<ul>\n<li>Verified visual compatibility with Twenty Twenty-Four, Twenty Twenty-One, and Astra themes (no layout break)<\/li>\n<li>Verified coexistence with Yoast SEO and Rank Math; noindex detection works correctly for both<\/li>\n<li>Updated pre-release checklist with the confirmed test results<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Documentation: rewrote readme.txt (English-first) and bilingual README.md<\/li>\n<li>Pre-release assets: added banner \/ icon placeholder images and spec<\/li>\n<li>Pre-release checklist added<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Added English (en_US) translation<\/li>\n<li>Admin UI now renders in natural English when user locale is en_US<\/li>\n<li>Japanese display unchanged<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>i18n foundation: all user-facing strings wrapped in translation functions<\/li>\n<li>Added <code>.pot<\/code> template and Japanese <code>.po\/.mo<\/code> files<\/li>\n<li>No visual or behavior changes<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Posts list column now shows not only counts but also the names of failed items<\/li>\n<li>New lightweight CSS loaded only on post list screens<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Meta box redesigned with a count summary (NG \/ warning \/ OK) at the top<\/li>\n<li>Problem items moved above passed items<\/li>\n<li>OK items now collapsible to reduce visual noise<\/li>\n<li>Layout and spacing refined<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Post-activation notice linking to the settings page<\/li>\n<li>About-this-plugin intro added to the top of the settings page<\/li>\n<li>Short helper text added under each check toggle explaining why the check matters<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Nine core checks (title, featured image, category, tags, excerpt, noindex, content length, links, images)<\/li>\n<li>Settings page, edit-screen meta box, posts list column, on-save warning notice<\/li>\n<\/ul>","raw_excerpt":"Catch missing titles, featured images, tags, thin content, and unintended noindex before you publish. English and Japanese UI.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/303174","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=303174"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/notalabs"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=303174"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=303174"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=303174"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=303174"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=303174"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=303174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}