سلام، خیلی خیلی وقته ( 3 ساله D: ) که هِی میخوام بیام ویرگول و یه مطلبی بنویسم، اما هربار با یک دلیلی خودمو گول میزنم و یه بهونهای برای خودم میتراشم که بالاخره یجوری نیام سراغش؛ من یک برنامهنویسم که خب قاعدتا سواد زیادی در تولید محتوا ندارم اما در عین حال خیلی دوست دارم هر چیزی که میدونم رو با دیگران به اشتراک بذارم. اول از همه میخوام خواهش کنم عذر بنده رو برای نگارش بد بپذیرید. سعی میکنم به مرور زمان بیشتر دقت کنم و بهتر بنویسم. شاید هم مسیر رو بردم سمت ویدیو :)
خُب اول اینکه من علاقه زیادی به وردپرس دارم، امیدوارم بدونید وردپرس چیه و اگر نمیدونید و تاحالا برای وردپرس کد نزدین همین الان مطلب رو ببندید که وقت گرانبهاتون هَدر نره.
حالا اگر برای وردپرس کد زدین احتمالا میدونید که وردپرس کوئریهای سنگینی داره نسبتاً، یعنی مثلا اگر 4تا پست رو از وردپرس میخوایم نمایش بدیم 2 3 تا جدول با هم ترکیب میشن تا اطلاعات کامل مربوط به اون پُستها به شما برگرده؛ تو این مطلب قصد دارم 2 روش رو بگم که شما میتونید با استفاده از این روشها تعداد درخواستهای دیتابیستون رو کاهش بدید که چندتا فاییده داره:
توی این مطلب فقط میخوام روشها رو توضیح بدم ولی بعدا سعی میکنم آموزش فنیش رو هم بذارم.
آقا قسمتهایی که همیشه یکسان هستن رو استاتیک کنید و هربار از وردپرس نخواید که تولیدش کنه. حالا این یعنی چی؟!
مثلا منو وردپرس رو در نظر بگیرید،خب شما فانکشنهای مربوط به ایجاد منو رو توی header.php مینویسید و هربار که این فایل فراخونی بشه خب منو هم هربار از دیتابیس فراخونی میشه و ساخته میشه. حالا شما کافیه یک فایل جدید بسازید به اسم nav.php بالفرض، و DOM منوتون رو زمانی بسازید که فهرست توی بخش ادمین وردپرس ذخیره میشه و DOM رو توی nav.php ذخیره کنید. حالا فقط کافیه فایل nav.php رو جایی اینکلود کنید که منوتون باید توی header.php باشه.
با اینکار شما زمان ذخیره کردن اِلِمانهای فهرست اونا رو فقط یکبار از دیتابیس میخونید و تمام آیتمها رو به همراه html خروجیشون توی nav.php ذخیره میکنید و با اینکلود کردن nav.php دیگه درخواستی به دیتابیستون ارسال نمیشه.
این روش خیلی سادست، وردپرس تِرَنسیِنت (transient) رو تاحالا شنیدید؟
با set_transient و get_transient میتونید نتایج دیتایی که از کوئریهای سنگین میگیرید رو توی جدول options برای مدت دلخواهی ذخیره کنید و هرجا و هرزمانی که نیازشون داشتید فراخونی کنید. اینطوری به جای یک کوئری سنگین و پیچیده تنها یک ردیف از دیتابیس رو درخواست میدید. راجع به این موضوع بعدا بیشتر توضیح میدم حقیقتا الان تمرکزم رو از دست دادم :)) ولی یه سرچ بزنید خیلی مطالب زیادی راجع بهش هست.
با یکم خلاقیت میتونید کارهای جالبی برای سبک شدن سایت خودتون یا کارفرماتون انجام بدید.
لطفا اگر این مطلب به دردتون خورد شما هم یک موضوع رو به من و دیگران آموزش بدید یا یک مطلب رو بهم پیشنهاد بدید :)