خانه / نرم افزار کامپیوتر / هاستینگ – وب سایت / مدیریت محتوی / WordPress / حذف رونوشت ها در وردپرس و ذخیره خودکار revisions and autosave

حذف رونوشت ها در وردپرس و ذخیره خودکار revisions and autosave

حذف رونوشت ها در وردپرس و ذخیره خودکار revisions and autosave یکی از راهکارهای کاربردی کاهش حجم دیتابیس و افزایش سرعت سایت است. این روش با حذف رونوشت ها و پیش نویس ها در database و تنظیم غیرفعال شدن revisions و autosave در فایل wp-config.php که در روت اصلی ست و نیز فایلfunctions.php  که در مسیر شاخه اصلی قالب سایت است، امکان پذیر می باشد.

غیر فعال کردن ذخیره خودکار :

      وقتی در حال افزودن نوشته جدید یا ویرایش نوشته های قدیمی می باشیم، بر اساس زمان تعیین شده در تابع زیر که در فولدر wp-admin و post.php and post-new.php می باشد:

wp_enqueue_script('autosave'); 

      تغییرات در نوشته یا ویرایش های آن بصورت خودکار و در فواصل زمانی تعیین شده ( پیش فرض ۳۰ ثانیه ) ، ذخیره می گردد که در هر بار ذخیره، یک ID نیز در دیتابیس ( یا شماره پیوندک نوشته ) و بالطبع متون و به ازای تعداد کارکترهای متون، حجم اشغال می کنند. در این حالت چنانچه در نوار بالای سایت ( سمت چپ ) تنظیمات صفحه را کلیک کنید و رونوشت ها را انتخاب کنید و سپس به پائین صفحه ای که در حال ویرایش آن می باشیم ، مراجعه نمائیم ، لیستی از آخرین تغییرات بر اساس تاریخ و ساعت سرور ، را مشاهده می کنیم. با کلیک بر روی آنها کدهای HTML قبلی نوشته ها نمایش داده می شود. به مرور زمان این امر باعث افزایش بی رویه حجم دیتابیس و سنگینی سایت ( خصوصا برای هاست های اشتراکی که درصد ساسپند شدنش را نیز بالا می برد ) و همچنین بالا رفتن شماره آی دی پست ها می شود.

      به طور کل برای هر مطلب ۲ آی دی در نظر گرفته می شود. آی دی اول مربوط به متن نوشته ها و تیبل های آن و آی دی بعدی ( که قاعدتا شماره بعد از آن می باشد ) مربوط به تنظیمات تصویر شاخص، برچسب ها و… می باشد. مابقی شماره ها که به فراخور زمان ویرایش، می تواند بعد از آی دی اصلی باشد یا چندین شماره پس از آن باشد که متعلق به پیش نویس ها و ذخیره های اتوماتیک می باشد. مثلا این مطلب که در حال مطالعه آن هستید شماره آی دی های ۱۱۶ و ۱۱۷ مربوط به آن ست. اگر تنظیمات زیر را انجام نداده باشیم، چنانچه بعد از چند روز بخواهم کوچکترین تغییری در این پست ایجاد کنم یک جدول جدید با شماره ای متفاوت مثلا ۱۴۰ به آن می دهد . ( به نسبت آخرین پست )

کاهش حجم دیتابیس با حذف رونوشت ها وردپرس و ذخیره خودکار

      بعد از توضیحات بالا و ضمن تاکید بر کپی از فایل هایی که نیاز به تغییرات دارند و همچنین جدول مربوط به پستهایتان ( بیاد داشته باشید قبل از هر تغییری بک آپ از جدول wp_posts و فایل کانفیگ روت اصلی و فانکشن قالبتان بگیرید… ).این روش کاملا دستی ست و مشابه پلاگین هایی که برای این منظور وجود دارد، کاربرد دارد پس مراحل زیر را انجام دهید:

حذف رونوشت ها در وردپرس :

برای حذف رونوشت ها ی قدیمی به صورت کلی، از کدهای زیر در دیتابیس استفاده می کنیم:

DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON ( a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON ( a.ID = c.post_id )
WHERE a.post_type = 'revision';

     گام اول که مربوط به هاست شماست، در پی اچ پی ادمین phpMyAdmin ابتدا دیتابیس مربوط به وردپرس را انتخاب کنید. سپس گزینه SQL را کلیک و کدهای فوق را ابتدا به نوت پد ویندوز وارد کنید. سپس در قسمت Run SQL query/queries on database کدها را درج و Go در پائین صفحه را انتخاب کنید. به این ترتیب بیشترین تیبلهای بلااستفاده حذف می شود و چنانچه جدولهایی باقی مانده بود که در ستون wp_posts نوشته بود " Revisions و همچنین " ذخیره خودکار " می بایست بصورت دستی حذف نمائید.

      در گام دوم ، برای غیر فعال کردن رونوشت ها در وردپرس ، فایل wp-config.php در روت اصلی یا ساب دامینی که CMS تان در آن نصب است را با یک ویرایشگر متنی بازکنید و عبارت /** Sets up WordPress Autosave and Post Revisions. */ را بیابید و پس از آن کد زیر را قرار دهید:

define('WP_POST_REVISIONS', false);

البته می توان به جای false از یک عدد نیز استفاده کرد. مثلا ۵ که نمایانگر این است، پستی که در حال ارسال یا ویرایش آن هستید فقط ۵ بار ذخیره ( تجدید نظر ) شود.

      گام سوم بهینه سازی مربوط به غیر فعال کردن ذخیره خودکار یا پیش نویس هایی که اتوماتیک ساخته می شوند. برای این منظور در ادامه کد بالا، کد زیر را اضافه کنید:

define( 'AUTOSAVE_INTERVAL', 60*60*60*24*365 ); // autosave 1x per year

      روش تست صحت ورود کدهای بالا و از کار انداختن پیش نویس ها و رونوشتها در وردپرس این است که پس از تغییرات فوق ، در نوارابزار سمت چپ و بالای صفحه گزینه ای به نام " رونوشت ها " دیگر وجود ندارد و چنانچه یک پست را ساعتها برای ویرایش باز نگه داریم ذخیره اتوماتیک ی از آن نگیرد ( با نوار قرمز در بالای پست این ذخیره سازی قبلا اطلاع داده می شد ). توجه داشته باشید که به جای false می توان عددی بر حسب ثانیه نوشت و این قابلیتها را با زمان بالاتر مورد استفاده قرار داد( پیشنهاد نمی گردد) مثلا عدد ۱۲۰ یعنی هر ۲ دقیقه یک ذخیره از پست بگیرد.

خالی کردن سطل زباله در وردپرس به صورت خودکار :

      نوشته و مطالبی که در پیشخوان مدیریتی وردپرس حذف می گردد، به صورت کامل پاک نمی شود. برای اینکه مثلا فرمان دهیم در هر ۵ روز فایل trash که حاوی پست های حذف شده و… ست، خالی شود، سیستم اتوماتیک در زمان موعود نسبت به حذف آن اقدام می نماید. از کد زیر در wp-config.php شاخه نصب وردپرس استفاده می نمائیم:

define('EMPTY_TRASH_DAYS', 5 );

یا می توان جهت غیر فعال سازی سطل آشغال وردپرس ، به جای عدد ( مثلا ۵ روز ) از ۰ استفاده نمائیم.

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

منبع

درباره مدیر سایت

مدیر سایت
« الصبر مفتاح الفرج » « ان الله مع الصابرین » صبر و ظفر هر دو دوستان قديمند، بـر ا ثـر صبــر نـوبت ظفـر آيد. Update, Backup & Security رمز موفقیت ادمین و پایداری شبکه ...

۱۳ نظر

  1. سلام – آیا این طبیی است که هر عکس در رسانه وردپرس آپلود میشود برای یک پست برایش یک عدد آیدی ایجاد شود در جدول

    wp_posts

    ؟؟؟

  2. ممنون از مطالبتون

  3. سلام ادمین گرامی این فایل wp-config.php که شما دادید و همه تنظیماتش رو برای غیر فعال کردن پیش نویس انجام دادید مشکل داره برای ورد پرس ۳۹٫۱ , hdk hoxhv v, ldni

    Parse error: syntax error, unexpected $end in /home/u880916919/public_html/wp-config.php on line 115
    ا گر شما برای وردپرس پایین تر این رو دادید لطف کنید برای ۳٫۹٫۱ یه فایل دیگه بزارید بهم نیاز د ارم .باتشکر

  4. سلام!
    قصد دارم دیگه رونوشتی از مطالب پستها و صفحات سایتم ذخیره نشه. راههایی که شما مطرح کردید جواب نداد!
    عباراتی که گفتید در فایل wp-config.php و فایلهای دیگه پیدا نشد.
    فقط یه فایل با نام revision.php در پوشه wp-includes وجود داره که کلی پارامتر داره.
    دقیقا نمیدونم کدوم قسمتهاشو باید تغییر بدم. چیکار باید کرد؟

    راستی! مطالب سایت شما بسیار عاااالی است… 😉

    • مدیر سایت

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

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

      • بله. حق با شماست…
        برای من، توی فایل wp-config.php عبارت
        /** Sets up WordPress Autosave and Post Revisions. */
        وجود نداره!
        میشه همینطوری دو تا کد زیر رو توی فایل wp-config.php اضافه کنم؟
        define(‘WP_POST_REVISIONS’, false);
        define( ‘AUTOSAVE_INTERVAL’, 60*60*60*24*365 ); // autosave 1x per year
        باز هم ممنون!

  5. خیلی ممنون از سایت خوبتون…خیلی مفید بود.

پاسخ بدهید

ایمیلتان منتشر نمیشودفیلدهای الزامی علامت دار شده اند *

*

✿ لطفاً معادله ی امنیتی زیر را ، در کادر مربوطه پُر نمائید ✿ *
Time limit is exhausted. Please reload CAPTCHA.

رفتن به بالا