اعتبار سنجی عنوان تکراری

توضیحات

اعتبار سنجی عنوان تکراری یک افزونه قوی وردپرس است که برای اطمینان از منحصر به فرد بودن عناوین پست در همه انواع پست ها و طبقه بندی ها طراحی شده است. با جلوگیری از عناوین تکراری، این افزونه هم سئو و هم تجربه کاربر را بهبود می بخشد. چه از گوتنبرگ استفاده کنید یا از ویرایشگر کلاسیک، به طور یکپارچه برای حفظ منحصر به فرد عنوان یکپارچه می شود.

ویژگی‌های اصلی

  • Comprehensive Duplicate Detection: Scans selected post types (including custom ones) and taxonomies to identify duplicate titles. Case-insensitive comparison catches duplicates regardless of capitalisation.
  • Post Type Selection: Choose which post types are included in duplicate title checking from the settings page.
  • Gutenberg Publish Lock: In the block editor, the Publish button is fully disabled when a duplicate title is detected, with a pre-publish warning panel showing the conflicting titles.
  • Classic Editor Protection: Automatically saves posts with duplicate titles as drafts to prevent accidental publishing, with a dismissible admin notice.
  • Forbidden Words Filter: Define a list of words or phrases that must not appear in post titles. Choose to block publishing entirely or show a warning while allowing publishing.
  • Admin Email Notifications: Configure one or more admin email addresses to receive an alert whenever a post with a duplicate title is published. Includes 5-minute throttling to prevent spam.
  • Duplicate Title Report: A dedicated report page lists all published posts with duplicate titles, grouped by title, with direct edit links.
  • Real-time Similar Titles: As you type a title, a live list of similar existing titles appears below the input field in both editors.
  • Dashboard Widget: A dedicated widget on the WordPress dashboard identifies similar or potentially duplicate titles using cosine similarity, with colour-coded scores and direct edit links.
  • Redesigned Settings Page: A clean, card-based settings UI with toggle switches, inline field descriptions, and a test email button.
  • Result Caching: Dashboard widget results are cached for one hour to avoid performance issues on large sites.
  • Mobile Optimised: All admin pages and widgets are fully responsive at the 782px WordPress mobile breakpoint.
  • Localization Support: Fully translated into 6 languages – English, Persian, Spanish, Portuguese (Brazil), German, and Arabic – with support for adding more.

New in Version 1.8

  • Forbidden Words Filter: Block publishing or show a warning when a post title contains configured words or phrases. Integrated into both Gutenberg and the Classic Editor.
  • Admin Email Notifications: Notify one or more admins when a duplicate title is published. Configurable email list with a Send Test Email button. 5-minute throttling prevents notification spam.
  • Post Type Selection: Choose which post types are checked for duplicate titles. Leave all unchecked to check all public post types.
  • Duplicate Title Report Page: A new submenu page lists all published posts with duplicate titles, grouped by title, with post type badges and direct edit links.
  • Case-insensitive Comparison: Duplicate detection now uses LOWER() in SQL so “Hello” and “hello” are treated as the same title.
  • Mobile Optimisation: Settings page, report page, and dashboard widget are now fully responsive.
  • Bug Fixes: Fixed WooCommerce notice disappearing too quickly, fixed similar titles box hiding on exact duplicate match, fixed pair_key duplication bug in dashboard widget, fixed textdomain loading timing.
  • All Language Files Updated: All 5 translations (fa_IR, ar, de_DE, es_ES, pt_BR) updated with all new strings.

Supported Languages

This plugin ships with built-in translations. No extra installation required – activate the plugin and set your WordPress language.

  • English (en_US) – Built-in
  • Persian / فارسی (fa_IR) – Complete
  • Spanish / Español (es_ES) – Complete
  • Portuguese Brazil / Português (pt_BR) – Complete
  • German / Deutsch (de_DE) – Complete
  • Arabic / العربية (ar) – Complete

Want to add your language? Translate the .pot file in the languages/ folder using Poedit and send the .po and .mo files to hasan.mova@gmail.com.

مترجمان

  • فارسی (fa_IR): حسن موحد
  • Spanish (es_ES): Hasan Movahed
  • Portuguese Brazil (pt_BR): Hasan Movahed
  • German (de_DE): Hasan Movahed
  • Arabic (ar): Hasan Movahed

Special Thanks

A heartfelt thank you to May for her generous financial support – you believed in this project when it needed it most and kept it alive. This plugin exists because of your kindness. Thank you.

Support & Donations

This plugin is free and open-source, built and maintained entirely in spare time. If it saves you time or helps your site stay organised, please consider supporting its development.

Every contribution, no matter how small, helps keep this project alive and growing.

To send a donation or get in touch: hasan.mova@gmail.com

مجوز

این افزونه تحت مجوز GPLv2 یا جدیدتر مجوز دارد.

مشارکت

Contributions are welcome! Fork the repository and submit a pull request. Ensure your code adheres to WordPress coding standards.

Support Forum

برای دریافت کمک، از تالار گفتمان پشتیبانی WordPress.org دیدن کنید.

عکس‌های صفحه

نصب

مراحل نصب افزونه

  1. افزونه را آپلود کنید:

    • Upload the duplicate-title-validate folder to the /wp-content/plugins/ directory.
  2. افزونه را فعال کنید:

    • به افزونه ها > افزونههای نصب شده در داشبورد وردپرس شما.
    • اعتبار سنجی عنوان تکراری را پیدا کنید و روی فعال کردن کلیک کنید.
  3. پیکربندی تنظیمات (اختیاری):

    • Navigate to Duplicate Title Validator > Settings in the WordPress admin menu to adjust the plugin settings.

سوالات متداول

آیا این افزونه از انواع پست ها و طبقه بندی های سفارشی پشتیبانی می کند؟

Yes, it checks for duplicate titles across all registered post types and taxonomies, including custom ones. You can also limit checking to specific post types from the Settings page.

What happens in Gutenberg when a duplicate title is detected?

The Publish button is locked via the official lockPostSaving API and a warning panel appears in the pre-publish checklist listing all conflicting titles. The lock is released as soon as the title is changed to a unique one.

What happens in the Classic Editor?

The post is saved as a draft instead of being published, and an admin notice is displayed explaining the duplication source.

Can I allow duplicate titles if I need to?

Yes. Go to Duplicate Title Validator > Settings and enable “Allow Duplicate Titles.” In Gutenberg this shows a dismissible warning instead of blocking publishing.

What are Forbidden Words?

You can define a list of words or phrases that must not appear in post titles. In Block mode, publishing is prevented entirely. In Warn mode, a notice is shown but the post can still be published.

How do admin email notifications work?

Enter one or more admin email addresses in the Settings page. Whenever a post with a duplicate title transitions to “published”, the configured admins receive an email alert. A 5-minute throttle per post prevents duplicate notifications.

Is duplicate title detection case-sensitive?

No. Comparison uses LOWER() in the database query, so “Hello”, “hello”, and “HELLO” are all treated as the same title.

آیا می توانم این افزونه را به زبان های دیگر ترجمه کنم؟

Absolutely. The plugin is translation-ready with a .pot file in the languages/ folder. Create .po and .mo files using Poedit and place them in the languages/ directory.

آیا این افزونه بر عملکرد سایت تأثیر می گذارد؟

The plugin is optimised for performance. Dashboard widget results are cached for one hour. On very large sites, the similarity scan limit can be reduced in the settings. Duplicate checking queries are lightweight and indexed.

چگونه افزونه را آپدیت کنم؟

به روز رسانی را می توان به طور مستقیم از طریق داشبورد وردپرس انجام داد. همیشه قبل از به روز رسانی از سایت خود نسخه پشتیبان تهیه کنید.

نقد و بررسی‌ها

8 فوریه 2017
Hi I really want this plugin, But before that I need some information about it.. Does it work well with 4.2.4? And how does it verify the title everytime its entered? Does it send a query to check all the post titles each time? And if that is the case. Doesnt that slow down the database and the website?
خواندن تمامی 4 نقد و بررسی‌

توسعه دهندگان و همکاران

“اعتبار سنجی عنوان تکراری” نرم افزار متن باز است. افراد زیر در این افزونه مشارکت کرده‌اند.

مشارکت کنندگان

“اعتبار سنجی عنوان تکراری” به 1 زبان ترجمه شده است. با تشکر از مترجمین برای همکاری و کمک‌هایشان.

ترجمه “اعتبار سنجی عنوان تکراری” به زبان شما.

علاقه‌ مند به توسعه هستید؟

کد را مرور کنید، مخزن SVN را بررسی کنید، یا از طریق RSS در گزارش توسعه مشترک شوید.

گزارش تغییرات

1.8

  • New: Forbidden words/phrases filter – block publishing or show a warning when a title contains configured words. Integrated into Gutenberg (lockPostSaving) and Classic Editor (AJAX + server-side).
  • New: Admin email notifications – notify one or more admins when a duplicate title is published, with 5-minute transient throttling to prevent spam.
  • New: Post type selection – choose which post types are included in duplicate title checking from the settings page.
  • New: Duplicate Title Report submenu page – lists all published posts with duplicate titles grouped by title, with post type badges and edit links.
  • New: Send Test Email button on the settings page to verify mail server configuration.
  • New: Case-insensitive duplicate detection using LOWER() in SQL queries.
  • Fix: WooCommerce duplicate notice was disappearing too quickly – removed premature transient deletion so it persists for 60 seconds.
  • Fix: Similar titles box was hiding when the user typed an exact duplicate title – removed the erroneous exact-match filter from get_matching_titles().
  • Fix: pair_key bug in dashboard widget causing the same similar-title pair to appear twice – replaced min/max logic with sort() on full ID|type strings.
  • Fix: load_plugin_textdomain was called inside a plugins_loaded callback hooked from init, which meant it never fired – changed to a direct call in the constructor.
  • Fix: Removed em dashes from all UI strings for better cross-font compatibility.
  • Mobile: Settings page, report page, and dashboard widget are fully responsive at the 782px WordPress admin breakpoint.
  • i18n: All 5 language files (fa_IR, ar, de_DE, es_ES, pt_BR) updated with all new strings from v1.8.

1.7

  • New: Gutenberg Publish button fully locked via lockPostSaving when a duplicate title is detected and “Allow Duplicate Titles” is off.
  • New: Pre-publish panel in the block editor showing conflicting titles and a clear explanation.
  • New: Colour-coded meta box result panel in the block editor sidebar (red for duplicates, green for clean).
  • New: Completely redesigned settings page with a card-based UI, dark header, and toggle switches.
  • New: Completely redesigned dashboard widget with similarity score badges and grouped title cards.
  • New: Donation and support section added to both the settings page and the dashboard widget.
  • New: Added full translations for Spanish (es_ES), Portuguese Brazil (pt_BR), German (de_DE), and Arabic (ar).
  • Fix: Corrected load_plugin_textdomain path (was pointing to inc/languages instead of languages).
  • Fix: Fixed wrong text domain 'textdomain' in class-title_checker.php.
  • Fix: Replaced flawed strpos-based similar title filter with a direct equality check.
  • Fix: Removed duplicate wp-plugins entry from Gutenberg script dependencies.
  • Fix: Added sanitize_text_field() and absint() to Gutenberg REST API request handlers.
  • Fix: Removed unused /check-titles REST API endpoint.
  • Fix: Dashboard widget now checks for WP_Error return from get_terms().
  • Fix: Removed error_log() calls from production code.
  • Performance: Dashboard widget results cached with a one-hour transient.
  • Performance: Duplicate pair tracking in similarity scan avoids redundant comparisons.

1.6

  • Restructured plugin architecture for better performance and maintainability.
  • Added a dashboard widget to identify and manage similar titles.
  • Introduced a feature to display previously used titles.
  • Improved compatibility with Gutenberg and Classic Editor.
  • Enhanced localization support for English and Persian.

1.5

  • استانداردسازی بر اساس ساختار مورد نیاز پشتیبانی وردپرس.

1.4

  • بررسی های تکراری تاکسونومی پیشرفته
  • پشتیبانی بومی سازی بهبود یافته برای فارسی.
  • وضوح پیام خطای اصلاح شده.
  • عملکرد بهینه برای مجموعه داده های بزرگتر.

1.3

  • ساختار افزونه به شی گرا تغییر یافته است.
  • پشتیبانی جامع طبقه بندی اضافه شده است.
  • سازگاری بهبود یافته با به روز رسانی وردپرس.

1.2

  • بومی سازی را معرفی کرد.
  • شناسایی منبع تکراری پیشرفته

1.1

  • مدیریت پاسخ های پیچیده REST API بهبود یافته است.
  • پشتیبانی از ویرایشگر کلاسیک پیشرفته

1.0

  • با عملکرد اصلی برای تشخیص عنوان تکراری راه اندازی شد.