SHET23

کنترل و مدیریت رونوشت‌های وردپرس با Revision Control

کنترل و مدیریت رونوشت‌های وردپرس با Revision Control

تا حالا شده یه تیکه از نوشته‌تون رو اشتباهی پاک کنین و بعد از ذخیره تازه یادتون بیفته؟ یا یه پیش‌نویس رو اون‌قدر تغییر بدین که دلتون برای نسخهٔ قبلیش تنگ بشه؟ نگران نباشین. برای برگشتن به نسخهٔ قبلی معمولاً اصلاً افزونه لازم ندارین. وردپرس با قابلیت رونوشت‌ها (Revisions) نسخه‌های قبلی نوشته‌ها و برگه‌ها رو نگه می‌داره و هر وقت خواستین، می‌تونین برشون گردونین.

توی این مقاله اول می‌ریم سراغ بازیابی رونوشت با امکانات خود وردپرس. بعدش می‌بینیم چطوری میشه تعداد رونوشت‌ها رو کنترل کرد: یه بار با چند خط کد و یه بار با افزونهٔ رایگان Simple Revision Control.

آنچه در این مقاله می‌خوانید

رونوشت در وردپرس چیه؟

وردپرس هر بار که محتوایی رو ذخیره یا به‌روز می‌کنین، یه نسخه ازش کنار می‌ذاره. به این نسخه‌ها میگن رونوشت. یعنی با هر بار زدن «انتشار»، «به‌روزرسانی» یا «ذخیرهٔ پیش‌نویس» یه رونوشت جدید ساخته میشه. بعدش هم می‌تونین از داخل خود ویرایشگر نسخه‌ها رو ببینین، با هم مقایسه‌شون کنین و هر کدوم رو که خواستین برگردونین.

وردپرس یه قابلیت دیگه هم داره به اسم «ذخیرهٔ خودکار» که با رونوشت فرق داره. ذخیرهٔ خودکار توی ویرایشگر بلوکی هر ۱۰ ثانیه و توی ویرایشگر کلاسیک هر ۶۰ ثانیه یه بار نسخهٔ فعلی رو ذخیره می‌کنه، ولی فقط آخرین نسخه رو نگه می‌داره. پس اگه تغییراتتون رو هنوز ذخیره نکرده بودین، اول یه سر به ذخیرهٔ خودکار بزنین.

بازیابی رونوشت با قابلیت داخلی وردپرس (بدون افزونه)

توی وردپرس ۷ و نسخه‌های جدیدتر

وردپرس ۷.۰ بخش رونوشت‌ها رو از اول طراحی کرد. قابلیت جدیدش اسمش «رونوشت‌های بصری» (Visual Revisions) هست و مقایسه رو خیلی راحت‌تر کرده:

  • دو تا نسخه رو همون‌جا توی ویرایشگر و با یه نوار لغزنده مقایسه می‌کنین.
  • بازرس سند خلاصهٔ تغییرات رو نشونتون میده.
  • نشانگرهای رنگی میگن کجا و چقدر تغییر اتفاق افتاده. با کلیک روی هر نشانگر هم مستقیم می‌رین همون قسمت صفحه.
  • دیگه به یه صفحهٔ جدا منتقل نمی‌شین؛ وردپرس همون‌جا توی ویرایشگر یه «حالت رونوشت» باز می‌کنه.
رونوشت در سایدبار گوتنبرگ
رونوشت در سایدبار گوتنبرگ

وردپرس ۷.۱ هم یه امکان کاربردی به این بخش اضافه کرد: اشتراک‌گذاری لینک یه رونوشت مشخص. کافیه نسخهٔ موردنظرتون رو انتخاب کنین و لینکش رو از نوار آدرس مرورگر بردارین. هر کی این لینک رو باز کنه، مستقیم همون رونوشت رو با تغییرات هایلایت‌شده می‌بینه. برای کار تیمی خیلی به درد می‌خوره.

برای برگردوندن یه رونوشت:

  1. نوشته یا برگهٔ موردنظرتون رو توی ویرایشگر باز کنین.
  2. نوار کناری تنظیمات رو باز کنین و برین توی زبانهٔ «نوشته» یا «برگه». روی عددی که کنار «رونوشت‌ها» اومده کلیک کنین. اگه عددی نمی‌بینین، یا هنوز رونوشتی ساخته نشده، یا اون نوع پست اصلاً از رونوشت پشتیبانی نمی‌کنه.
  3. با نوار لغزنده بین نسخه‌ها جابه‌جا بشین و تاریخ، ساعت و نویسندهٔ هر رونوشت رو نگاه کنین.
  4. نسخهٔ درست رو که پیدا کردین، روی دکمهٔ بازگردانی کلیک کنین. اینطوری همون نسخه جای نسخهٔ فعلی می‌شینه و می‌تونین ویرایشش کنین.
  5. یه بار نوشته رو مرور کنین و اگه لازم بود، دوباره منتشرش کنین.
 برگردوندن یک رونوشت
برگردوندن یک رونوشت

نکته: بعضی افزونه‌ها زیر نوشته متاباکس اضافه می‌کنن و همین ممکنه سیستم جدید رونوشت‌ها رو از کار بندازه. اگه به‌جای رونوشت‌های بصری صفحهٔ کلاسیک رو دیدین، احتمالاً دلیلش همینه.

توی وردپرس ۶.۹ و نسخه‌های قدیمی‌تر

اگه هنوز روی این نسخه‌ها هستین، صفحهٔ کلاسیک رونوشت‌ها رو می‌بینین. توی این صفحه نسخه‌ها کنار هم قرار می‌گیرن و با دو تا دستگیرهٔ لغزنده می‌تونین هر دو رونوشتی رو با هم مقایسه کنین. رنگ‌ها هم کار رو راحت‌تر می‌کنن:

  • سبز: محتوایی که اضافه شده
  • قرمز: محتوایی که حذف شده
  • زرد: محتوایی که تغییر کرده

نوار لغزنده رو روی نسخهٔ موردنظرتون بذارین و روی «بازگردانی این رونوشت» کلیک کنین.

شاید توی این صفحه به‌جای متن ساده، کدهای HTML و عبارت‌هایی مثل wp:paragraph ببینین. نگران نشین. گوتنبرگ ساختار محتوا رو با همین نشانه‌گذاری‌ها ذخیره می‌کنه.

یه محدودیت مهم: کل نسخه برمی‌گرده

این رو از قبل بدونین: وردپرس همیشه کل نسخه رو برمی‌گردونه، نه فقط یه پاراگراف یا یه بخشش رو. اگه فقط یه تیکه از نسخهٔ قبلی رو لازم دارین، اینطوری عمل کنین:

  1. کد همون بلوک رو از رونوشت کپی کنین.
  2. «ویرایشگر کد» نوشتهٔ فعلی رو باز کنین. این گزینه توی منوی سه‌نقطهٔ بالای ویرایشگره.
  3. کد رو همون‌جا پیست کنین.

اینم یادتون باشه که رونوشت جای بکاپ رو نمی‌گیره. رونوشت‌ها این کارها رو انجام نمیدن:

  • برگردوندن آپدیت افزونه‌ها
  • برگردوندن فایل رسانه‌ای که پاک شده
  • درست کردن تنظیمات قالب
  • تعمیر داده‌های خراب‌شدهٔ پایگاه داده

چرا باید تعداد رونوشت‌ها رو مدیریت کنیم؟

همهٔ رونوشت‌ها توی پایگاه داده ذخیره میشن. اگه نوشته‌های سایتتون زیاد ویرایش میشن، تعداد رونوشت‌ها کم‌کم زیاد میشه و حجم پایگاه داده رو هم با خودش بالا می‌بره.

البته راه‌حلش این نیست که همهٔ رونوشت‌ها رو پاک کنین، چون اون‌وقت دیگه راه برگشتی ندارین. کار درست اینه که تعدادشون رو محدود کنین.

روش اول: محدود کردن رونوشت‌ها بدون افزونه

ساده‌ترین راه، ثابت WP_POST_REVISIONS توی فایل wp-config.php هست. کافیه کد زیر رو بالای خط /* That's all, stop editing! */ اضافه کنین:

php

// نگهداری حداکثر ۵ رونوشت برای هر نوشته
define( 'WP_POST_REVISIONS', 5 );

این ثابت چند تا مقدار مختلف می‌گیره:

  • یه عدد (مثلاً 5): وردپرس حداکثر همین تعداد رونوشت رو نگه می‌داره.
  • false یا 0: رونوشت‌ها کلاً خاموش میشن. اینو پیشنهاد نمی‌کنیم.
  • true یا -1: تعداد رونوشت‌ها نامحدود میشه، که حالت پیش‌فرض هم همینه.

این روش فقط یه ایراد داره: عددی که تعیین می‌کنین برای همهٔ انواع پست یکسان اعمال میشه. اگه مثلاً بخواین برای نوشته‌ها ۱۰ تا رونوشت و برای برگه‌ها فقط ۳ تا نگه دارین، باید برین سراغ افزونه.

روش دوم: آموزش افزونهٔ رایگان Simple Revision Control

Simple Revision Control یه افزونهٔ رایگانه که می‌تونین از مخزن رسمی وردپرس دانلودش کنین. چند تا از مشخصاتش:

  • نسخهٔ فعلی: 2.2.5، که دو ماه پیش آپدیت شده.
  • سازگاری: تا وردپرس 7.0.4 تست شده.
  • نیازمندی‌ها: وردپرس 6.0 یا بالاتر و PHP 8.0 یا بالاتر.

امکانات افزونه

  • برای هر نوع پست، تعداد رونوشت جداگونه تعیین می‌کنین.
  • رونوشت رو برای انواع پستی که به‌طور پیش‌فرض ازش پشتیبانی نمی‌کنن روشن می‌کنین، یا برای انواع پستی که لازمش ندارن خاموش می‌کنین.
  • رونوشت‌های اضافه رو با یه کلیک پاک می‌کنین.
  • همهٔ تنظیمات بدون کدنویسی و از مسیر تنظیمات ← رونوشت‌ها انجام میشه.

قبل از شروع: حتماً بکاپ بگیرین

رونوشتی که پاک بشه، دیگه برنمی‌گرده. اینم بدونین که توی سال‌های ۲۰۲۲ و ۲۰۲۳ چند تا از کاربرها گزارش دادن بعد از پاک‌سازی با این افزونه، بعضی برگه‌ها یا تصاویر نوشته‌هاشون از بین رفته. توسعه‌دهنده توی نسخهٔ 2.2.0 (فوریهٔ ۲۰۲۴) امنیت حذف رونوشت‌ها رو بهتر کرد تا نوشته‌های عادی دیگه پاک نشن.

با این حال احتیاط شرط عقله:

  • قبل از هر پاک‌سازی، از کل سایت و پایگاه داده بکاپ کامل بگیرین.
  • اگه امکانش رو دارین، اول روی یه سایت آزمایشی (Staging) امتحانش کنین.

گام ۱: نصب و فعال‌سازی

  1. توی پیشخوان وردپرس برین به افزونه‌ها ← افزودن افزونه.
  2. عبارت Simple Revision Control رو جست‌وجو کنین. دقت کنین سازندهٔ افزونه iworks (Marcin Pietrzak) باشه.
  3. روی «نصب» و بعد «فعال‌سازی» کلیک کنین.
افزونه Simple Revision Control
افزونه Simple Revision Control

گام ۲: تعیین تعداد رونوشت برای هر نوع پست

  1. برین به تنظیمات ← رونوشت‌ها (Settings → Revisions).
  2. یه فهرست از انواع پست سایتتون می‌بینین: نوشته‌ها، برگه‌ها و انواع پست سفارشی.
  3. برای هر کدوم تعداد رونوشت دلخواهتون رو وارد کنین. مثلاً ۱۰ برای نوشته‌ها و ۳ برای برگه‌ها.
  4. پشتیبانی از رونوشت رو برای هر نوع پستی که لازم دارین روشن کنین، و برای هر کدوم که لازم ندارین خاموش کنین.
  5. تغییرات رو ذخیره کنین.
تعیین تعداد رونوشت برای هر نوع پست
تعیین تعداد رونوشت برای هر نوع پست

گام ۳: پاک‌سازی رونوشت‌های اضافه

طبق تصاویر افزونه، رونوشت‌ها رو از دو جا می‌تونین پاک کنین:

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

پیشنهاد ما اینه که فقط رونوشت‌هایی رو پاک کنین که از حد تعیین‌شده بیشترن، و تا جایی که میشه سراغ پاک کردن همهٔ رونوشت‌ها نرین.

این افزونه رو لازم دارین یا نه؟ خود سازندهٔ افزونه میگه اگه می‌تونین wp-config.php رو ویرایش کنین و یه عدد برای همهٔ انواع پست کافیه، افزونه نصب نکنین و همون فایل رو ویرایش کنین.

افزونهٔ Revision Control چی شد؟

توی نسخهٔ قبلی این مقاله افزونهٔ Revision Control رو معرفی کرده بودیم، ولی الان دیگه استفاده ازش رو پیشنهاد نمی‌کنیم. دلیل‌هامون:

  • مخزن وردپرس هشدار میده که این افزونه با سه نسخهٔ اصلی اخیر وردپرس تست نشده.
  • آخرین آپدیتش ۸ سال پیش بوده و فقط تا وردپرس 4.9 تست شده.
  • سازنده‌ش صاف و پوست‌کنده گفته براش پشتیبانی ارائه نمیده.

جمع بندی

رونوشت‌ها یکی از اون قابلیت‌های وردپرس هستن که تا وقتی کارتون گیر نیفتاده، شاید حتی یادتون نباشه وجود دارن. ولی همین که یه پاراگراف مهم پرید یا یه ویرایش خراب از آب دراومد، تازه معلوم میشه چقدر به کار میان. خلاصهٔ چیزهایی که توی این مقاله گفتیم:

  • برای برگردوندن نسخهٔ قبلی نوشته، افزونه لازم ندارین. خود وردپرس این کار رو انجام میده. توی نسخه‌های ۷.۰ و ۷.۱ هم با رونوشت‌های بصری، مقایسه و بازگردانی از همیشه راحت‌تر شده.
  • وردپرس همیشه کل نسخه رو برمی‌گردونه. اگه فقط یه تیکه از نسخهٔ قبلی رو می‌خواین، کد همون بلوک رو کپی کنین و توی ویرایشگر کد پیست کنین.
  • برای کنترل حجم پایگاه داده، تعداد رونوشت‌ها رو محدود کنین، نه اینکه همه‌شون رو پاک کنین.
    • اگه یه عدد برای همهٔ انواع پست کافیه، ثابت WP_POST_REVISIONS توی wp-config.php بهترین انتخابه.
    • اگه برای هر نوع پست یه عدد متفاوت می‌خواین، افزونهٔ رایگان Simple Revision Control رو امتحان کنین.
  • رونوشت جای بکاپ رو نمی‌گیره. قبل از هر پاک‌سازی، از سایت و پایگاه داده بکاپ کامل بگیرین.
  • افزونهٔ Revision Control رو کنار بذارین. سال‌هاست آپدیت نشده و پشتیبانی هم نداره.

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

برای برگردوندن نسخهٔ قبلی نوشته باید افزونه نصب کنم؟

نه. وردپرس خودش با هر بار ذخیره، به‌روزرسانی یا انتشار یه رونوشت می‌سازه. از نوار کناری ویرایشگر هم می‌تونین نسخه‌ها رو ببینین، مقایسه کنین و برگردونین. افزونه‌ها بیشتر برای محدود کردن و پاک کردن رونوشت‌ها به کار میان.

فرق رونوشت با ذخیرهٔ خودکار چیه؟

رونوشت با هر بار زدن «ذخیرهٔ پیش‌نویس»، «به‌روزرسانی» یا «انتشار» ساخته میشه و چند نسخه ازش نگه داشته میشه. ذخیرهٔ خودکار ولی خودش به‌صورت دوره‌ای انجام میشه؛ توی ویرایشگر بلوکی هر ۱۰ ثانیه و توی ویرایشگر کلاسیک هر ۶۰ ثانیه. تازه فقط آخرین نسخه رو هم نگه می‌داره.

چرا کنار گزینهٔ «رونوشت‌ها» عددی نمی‌بینم؟

دو حالت داره:
هنوز برای اون نوشته رونوشتی ساخته نشده.
اون نوع پست از رونوشت پشتیبانی نمی‌کنه. اگه لازمش دارین، می‌تونین با افزونهٔ Simple Revision Control براش فعالش کنین.

میشه فقط یه پاراگراف رو به نسخهٔ قبلی برگردوند؟

مستقیماً نه، چون وردپرس کل نسخه رو برمی‌گردونه. ولی می‌تونین کد اون بلوک رو از رونوشت کپی کنین و توی «ویرایشگر کد» نوشتهٔ فعلی پیست کنین. ویرایشگر کد رو از منوی سه‌نقطهٔ بالای ویرایشگر پیدا می‌کنین.

میشه لینک یه رونوشت خاص رو برای همکارم بفرستم؟

آره، از وردپرس ۷.۱ به بعد. نسخهٔ موردنظرتون رو توی صفحهٔ رونوشت‌ها انتخاب کنین و لینکش رو از نوار آدرس مرورگر کپی کنین. هر کی لینک رو باز کنه، مستقیم همون رونوشت رو با تغییرات هایلایت‌شده می‌بینه.

رونوشت‌ها می‌تونن جای بکاپ رو بگیرن؟

نه. رونوشت‌ها فقط محتوای نوشته‌ها و برگه‌ها رو نگه می‌دارن. آپدیت افزونه‌ها رو برنمی‌گردونن، فایل رسانه‌ای پاک‌شده رو برنمی‌گردونن و تنظیمات قالب یا داده‌های خراب پایگاه داده رو هم درست نمی‌کنن. برای این کارها باید از سایتتون بکاپ کامل داشته باشین.

چند تا رونوشت برای هر نوشته کافیه؟

عدد ثابتی وجود نداره و به سایتتون بستگی داره. برای نوشته‌هایی که زیاد ویرایش میشن، عدد بیشتری در نظر بگیرین؛ مثلاً ۱۰. برای برگه‌هایی که کمتر تغییر می‌کنن، عدد کمتری مثل ۳ کافیه. فقط رونوشت‌ها رو کامل خاموش نکنین، چون راه برگشتتون رو از دست میدین.

چطوری بدون افزونه تعداد رونوشت‌ها رو محدود کنم؟

این خط رو توی فایل wp-config.php و بالای خط /* That's all, stop editing! */ اضافه کنین و به‌جای ۵ عدد دلخواهتون رو بذارین:
php
define( 'WP_POST_REVISIONS', 5 );
یادتون باشه این عدد برای همهٔ انواع پست یکسان اعمال میشه.

موفق و پیروز باشین.

نظر شما در این مورد چیه؟

    پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
    تیم میهن وردپرس
    پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
    تیم میهن وردپرسدر حال حاضر آفلاین هستیم. لطفاً پیام بگذارید تا در اولین فرصت پاسخ دهیم.آفلاین

    در حال بارگذاری...

    هر سوالی دارید بپرسید.پاسخگوی شما هستیم.