آموزش های وردپرس

آموزش بهینه سازی دیتابیس وردپرس با مدیریت رونوشت‌ها

رونوشت وردپرس یکی از ویژگی های کلیدی وردپرس است که با استفاده از اون میتونید تا از آخرین تغییراتی که در نوشته‌های سایت شما ایجاد میشه یک نسخه‌ای را با بازه زمانی مشخص در دیتابیس وردپرس ذخیره کنید تا هر زمان که ارتباط شما به هر دلیلی با سایت حین اینکه در حال نوشتن هستید قطع شد بتونید تا از آخرین جایی که تغییرات ذخیره شدند مجددا شروع به نوشتن کرده و محتوای نوشته خودتون را تکمیل کنید. به عبارت دیگه وقتی شما در حال گردآوری یک نوشته در وردپرس هستید در فاصله زمانی تعیین شده ای در هر بار یک ذخیره خودکار از نوشته شما در دیتابیس به عنوان ذخیره پیش نویس ذخیره میشه، اما همینطور که زمان میگذره و شما نوشته‌های زیادی را در سایت منتشر می‌کنید به مرور این نوشته‌هایی که به صورت پیش نویس در دیتابیس سایت شما در قالب رونوشت ذخیره شدند بر روی هم تلنبار شده و همین مسئله باعث میشه تا حجم دیتابیس سایت شما افزایش کرده و با کندی سرعت در وردپرس مواجه شوید.

در این آموزش از پایگاه دانش میزبان‌فا قصد دارم تا به معرفی رونوشت وردپرس و راهکارهایی برای بهینه سازی دیتابیس وردپرس با استفاده از پاک کردن رونوشت‌ها در وردپرس اقدام کنید. پس اگر شما هم فکر می‌کنید که رونوشت‌های سایت شما باعث شده تا سایت شما با کندی مواجه بشه تا انتهای این مقاله با ما همراه باشید.

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

همونطوری که در بالا اشاره‌ای مختصر کردم هرگاه که شروع به افزودن یک نوشته در سایت خودتون می‌کنید وردپرس قابلیتی داره که در یک بازه زمانی کوتاهی هر بار از آخرین تغییراتی که در نوشته شما وجود داره یک نسخه رونوشت تهیه کرده و در قالب یک نوشته پیش نویس اونو ذخیره میکنه تا هر زمان به هر دلیلی مثل قطع شدن اتصال اینترنت یا ایجاد مشکلی در سایت ارتباط شما با سایت قطع شد آخرین تغییراتی که روی نوشته اعمال کردید در سایت شما ذخیره شود. حالا بعد از اینکه آخرین تغییرات ذخیره شدند وقتی مجددا به صفحه ویرایش نوشته مراجعه کنید میبینید که آخرین تغییراتی که در نوشته ذخیره شدند وجود داره و میتونید تا با ویرایش نوشته محتوای خودتون را کامل کنید تا در نهایت اونو منتشر کنید. علاوه بر این اگر هم مشکلی به وجود اومد میتونید تا با بازگردانی رونوشت انتخابی که تو هر بازه زمانی خاص ذخیره شده تغییرات رو برگردونید و مجددا ویرایش نوشته را از سر بگیرید. برای آشنایی بهتر با رونوشت‌ها در وردپرس کافیه تا مشابه تصویر زیر به ویرایش یکی از نوشته‌های سایت مراجعه کنید و بعدش در بخش انتشار نوشته روی گزینه رونوشت‌ها کلیک کنید.

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

حالا همونطور که در تصویر هم مشخص شده میتونید تا با استفاده از نواری که در بالا وجود داره رونوشت مورد نظرتون را انتخاب کرده و در نهایت بعد از کلیک روی دکمه بازیابی این رونوشت به صفحه ویرایش نوشته در حالتی که نوشته در آن زمان ذخیره شده دسترسی پیدا کنید. اما همونطور که در بالا هم اشاره شد به دلیل اینکه تعداد رونوشت وردپرس به مرور بیشتر و بیشتر میشه حجم زیادی را از دیتابیس گرفته و در هر بار ویرایش پست نیز به روز می‌شود. پس در سایت‌هایی که دارای مطالب و داده‌هایی با حجم بالا هستند این موضوع باعث مشکل خواهد شد. لذا برای جلوگیری از این مشکلات ما چند راهکار داریم که عبارتند از:

آموزش غیرفعال کردن رونوشت در وردپرس

اگر که قابلیت رونوشت وردپرس را غیرفعال کنید به صورت کلی ذخیره خودکار نوشته غیرفعال شده و هر زمان که در حال نوشته هستید اگر به هر دلیلی ارتباط شما با سایت قطع بشه هیچ راهی وجود نداره تا آخرین تغییرات را بازگردانی کنید. بنابراین لازمه تا مجددا از ابتدا شروع به نوشتن کنید. پس اگر قصد غیرفعال کردن رونوشت‌ها در وردپرس را دارید لازمه تا کد زیر را در فایل فانکشن (functions.php) قالب خودتون قرا بدین. برای این کار وارد هاست خود شده و سپس روی گزینه File Manager کلیک کنید. سپس بعد از اینکه وارد محیط مدیریت فایل‌ها در هاست شدید به مسیر /public_html/wp-content/themes/ شده و سپس وارد پوشه قالبی که از اون در سایت خودتون استفاده می‌کنید شده و به دنبال فایل functions.php بگردید. در نهایت روی فایل راست کلیک کرده و با انتخاب گزینه Edit وارد صفحه ویرایش این فایل شده و کدهای زیر را در انتهای فایل قرار بدین.

function disableAutoSave(){    wp_deregister_script('autosave');}add_action( 'wp_print_scripts', 'disableAutoSave' );

حالا بعد از ذخیره فایل به صورت کلی ذخیره خودکار نوشته غیرفعال شده و دیگه رونوشتی در وردپرس ذخیره نخواهد شد.

آموزش تغییر زمان ذخیره خودکار نوشته در وردپرس

اما اگر دوست ندارید تا آخرین ذخیره تغییرات روی نوشته رو از دست بدین و از طرفی هم زحمت دوباره نوشتن را به دوش نکشید یک راه دیگه هم برای شما وجود داره که با استفاده از اون میتونید تا مدت زمان ذخیره خودکار نوشته را بیشتر کنید. در این صورت تعداد رونوشت‌هاتون تا حد قابل توجهی برای یک نوشته کمتر شده و دیتابیس شما حجیم‌تر از حالت قبل نخواهد شد. برای این کار هم کافیه تا وارد هاست خودتون شده و سپس در بخش File Manager ّاست و درست در مسیر public_html به دنبال فایلی با نام wp-config.php بگردید و کدهای زیر را در مکان مناسبی از این فایل قرار دهید.

define('AUTOSAVE_INTERVAL', 300 ); // secondsdefine('WP_POST_REVISIONS', false );

حالا همونطور که در این کد مشاهده میکنید مدت زمان ذخیره خودکار در هر بار برای نوشته روی 300 ثانیه تنظیم شده که میتونید به دلخواه خودتون اونو به زمان بیشتر و یا کمتری تغییر داده و فایل را ذخیره کنید تا از این پس رونوشت‌ها با بازه زمانی طولانی‌تری در هر بار ذخیره شوند.

آموزش حذف رونوشت وردپرس و بهینه سازی دیتابیس

برای حذف رونوشت ها از وردپرس حالا که این آموزش را مشاهده می‌کنید شاید تعداد بسیار زیادی رونوشت در سایت خودتون داشته باشید که همین رونوشت‌ها علت کند بودن سایت شما باشند. بنابراین راهی هم وجود داره تا شما رونوشت‌های سایت خودتون را در هر چند ماه یک بار بسته به تعداد مطالبی که در هر ماه منتشر می‌کنید انجام بدین. با این کار میتونید هر از گاهی که حس کردید سایت شما کند شده و به درستی پاسخگو نیست میتونید رونوشت های سایت را حذف کرده و دیتابیس خودتون را بهینه کنید. برای این کار وارد هاست خود شده و سپس روی گزینه File Manager کلیک کنید. سپس بعد از اینکه وارد محیط مدیریت فایل‌ها در هاست شدید به مسیر /public_html/wp-content/themes/ شده و سپس وارد پوشه قالبی که از اون در سایت خودتون استفاده می‌کنید شده و به دنبال فایل functions.php بگردید. در نهایت روی فایل راست کلیک کرده و با انتخاب گزینه Edit وارد صفحه ویرایش این فایل شده و کدهای زیر را در انتهای فایل قرار بدین.

DELETE FROM wp_posts WHERE post_type = "revision";

حالا بعد از اینکه این فایل را ذخیره کردید لازمه تا یک بار در حالتی که به پیشخوان وردپرس دسترسی دارید و به عبارتی در سایت لاگین کردید صفحه اصلی سایتتون را باز کرده و یک بار روی دکمه F5  کلیک کنید تا سایت شما رفرش شود. بعد از این مرحله رونوشت های وردپرس به کلی حذف شده و دیتابیس شما بهینه سازی خواهد شد. حالا که سایت را رفرش کردید و رونوشت‌ها هم از وردپرس حذف شدند میتونید تا این قطعه کد را از فایل فانکشن بردارید.

امیدوارم که این آموزش هم مورد توجه و پسند شما قرار گرفته باشه و با استفاده از اون تونسته باشید تا نسبت به مدیریت رونوشت در وردپرس و بهینه سازی دیتابیس وردپرس با استفاده از رونوشت‌ها در وردپرس اقدام کنید. اگر در رابطه با این آموزش سوال و یا مشکلی داشتید در بخش دیدگاه‌ها اعلام کنید تا در کوتاه‌ترین زمان ممکن پاسخگوی شما باشم.
4.1/5 - (23 امتیاز)

علی یزدان پرست

حدود 8 سالی هست که در زمینه میزبانی وب به صورت تخصصی فعالیت می کند و علاقه زیادی به کسب تجربه در زمینه بازاریابی اینترنتی و تجارت الکترونیک دارد، علی یک کارآفرین خستگی ناپذیر است و با انرژی حیرت انگیزی تمام قسمت های میزبان فا را توسعه می دهد، علی به سبک حرفه ای و انحصاری خود زندگی می کند و خط فکری خاصی را همیشه دنبال می کند، او رفتار هایی کاملا متفاوت نسبت به سایر مدیرانی که تا به حال دیده اید دارد...

‫۱۶ دیدگاه ها

  1. DELETE FROM wp_posts WHERE post_type = “revision”;
    این کد که در function.php قرار میگیره دیگه سایت بالا نمیاد!
    یجورایی این دستور مربوط میشه به mysql بعید میدونم همینطوری نوشته بشه کار کنه!

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

    1. سلام روزتون بخیر؛
      باید کدهای فانکشن قالبتون رو بررسی کنید.
      به دنبال کدی مشابه function disableAutoSave() باشید. در صورت وجود این کد در فانکشن قالب، قابلیت رو نوشت غیرفعال میشه.
      همینطور فایل wp-config.php وردپرستون رو چک کنید و کد زیر رو در اون جستجو کنید. این کد باعث غیرفعال شدن رونوشت ها میشه. در صورت وجود، حذفش کنید.
      define( ‘WP_POST_REVISIONS’, FALSE )

  2. سلام خدمت شما
    برای حذف رونوشت های وردپرس این کد را تست بفرمایید.
    دستور زیر را داخل فایل functions.php قالب خود قرار دهید.
    $wpdb->query( ”
    DELETE FROM $wpdb->posts
    WHERE post_type = ‘revision’
    ” );

  3. استاد جسارتا کد درستش

    $wpdb->query( ”
    DELETE FROM $wpdb->posts
    WHERE post_type = ‘revision’
    ” );

    هستش. جسارت کردم عذرمیخوام.

    1. سلام
      متاسفانه موقع وارد کردن کد پیشنهادی جنابعالی، باز هم ایراد گرفت.
      آدرس فایل هم در زیر می نویسم ، شاید بنده اشتباه انجام میدم.
      با تشکر

    2. کد شما هم متاسفانه مشکل داره مدیر همین سایتم فقط نوشته خودشون امتحان نکردند یا به نظراتم درست حسابی پاسخ نمیدن

      1. سلام و احترام؛
        قبل از انتشار مقالات کدها تست میشن اما بازبینی می کنیم و اگر موردی آپدیت شده باشه اصلاح میشه.

  4. آقا این کد آخری خطا میده. بقیه دوستانم اشاره کردند
    لطفا کد صحیح رو بزارید
    ممنون

  5. سلام
    حدود دو تا سه روزِ یک دفعه نوشته های سایت پاک شدن و به جاشون مینویسه wpr login
    چرا؟

  6. سلام احتراما کد ذکر شده در پاراگراف پایانی برای ما جواب داد. خانم اسماعیلی برای رونوشت محصولات و نمونه کار ها چکار کنیم ؟ اونام زیاد هستند. لطفا یک سرنخ بدهید که کد رو براش تغییر بدم. با تشکر

  7. سلام به دوستان کد اخری درسته فقط جای اون اشتباه هست
    DELETE FROM wp_posts WHERE post_type = “revision”;

    شما همین کد و ببرین توی PHPMyadmin دیتابیس خودتونو انتخاب کنید . روی جدول پست ها کلیک کنید و در سربرگ sql به عنوان یک کوئری بنویسید و اجرا کنید .

  8. سلام و تشکر از مطالب خوبتون
    من یک مسئله بزرگ دارم
    اینکه در سایت من تعداد محتواهای پیش نویس و تکثیر شده و زمان بندی شده زیاد هستند (و در خیلی از سایت هایی که دارم کار میکنم)
    چطور میشه رونوشت ها رو بعد از تکثیر نهایی در سایت (فقط محتواهای تکثیر شده) پاک کرد و محتواهای پیش نویس (که هنوز ویرایش نهایی نشدند) باقی بمونه؟

    1. سلام و احترام؛
      افزونه هایی همچون Optimize Database after Deleting Revisions برای مدیریت رونوشت های وردپرس در نظر گرفته شده اند شما می تونید پیکربندی اعمال کنید که تعداد محدودی رونوشت نگهداری و مابقی حذف شوند.
      همچنین می توانید به صورت دستی اقدام نمایید یعنی زمان انتشار محتوا، متن را کپی و در یک نوشته جدید درج و منتشر کنید و نوشته قبلی را کاملا حذف نمایید.

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

    define(‘WP_POST_REVISIONS’, false);
    define(‘WP_POST_REVISIONS’, 1);

    function delete_all_revisions() {
    global $wpdb;

    // SQL query to delete all revisions
    $wpdb->query(”
    DELETE FROM $wpdb->posts
    WHERE post_type = ‘revision’
    “);
    }

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *