رفتن به مطلب

سوال در مورد کش در سطح تم


x86_64

پست های پیشنهاد شده

سلام. مشغول کار روی سایتی هستم که به خاطر بازدید زیاد، فشار زیادی روی دیتابیسش هست. و بعد از امتحان پلاگین‌های مختلف کش، دیدم برای این سایت (که در تم اون ویدجت‌های زیادی گذاشتم که هر کدوم کوئری‌های سنگینی به دیتابیس تحمیل می‌کنه)، بهترین راه، استفاده از توابع Transient برای کش کردن هر یک از این ویدجت‌هاست.

حالا با توجه به تسلط نداشتن به سازوکار داخلی وردپرس، سوالی که از اساتید دارم اینه که وقتی یک کوئری با get_posts انجام میدیم و پست‌های اون رو در یک حلقه foreach پیمایش می‌کنیم، یا وقتی یک شی WP_Query میسازیم و با have_posts در یک حلقه پیمایشش می‌کنیم، این که صرفا همون خروجی get_posts یا WP_Query رو با transient کش کنیم کافیه؟ یا اینکه توابع «داخل حلقه» (یعنی get_post_meta و comments_number و get_the_post_thumbnailو get_the_title و get_permalink) هم به نوبه خودشون روی دیتابیس کوئری اجرا می‌کنن و اون‌ها هم نیاز به کش دارن؟

ممنونم

لینک به ارسال

سلام

آرگومان های ورودی حلقه کش بشن کافیه. چون توابعی که داخل حلقه اجرا میشن عملا به ورودی وابسته هستند.

لینک به ارسال

منظورتون اینه که وقتی شی WP_Query ساخته شد و کوئری رو روی دیتابیس انجام داد، تمام دیتاهای مورد نیاز توابع داخل حلقه از قبیل

get_the_post_thumbnail داخل همین شیء هست و دوباره کوئری جدیدی انجام نمیشه؟

لینک به ارسال

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

و کاری که می تونید برای کاهش بار انجام بدید این هست قسمت جستجوی سایت بردارید و به جاش از سرچ گوگل استفاده کنید.

یا مثلا ویجت ها رو از چرخه حذف کنید و در عوض سورسشون رو مستقیما توی قالب بزارید.

یا مثلا از کوئری های واکشی رندوم استفاده نکنید.

و از این جور کارها

لینک به ارسال

بله حرفتون درسته، وردپرس کوئری‌ها رو کش می‌کنه، اما به صورت per request کش میکنه. یعنی تا پایان نشست جاری شما می‌تونید با استفاده از توابع wp_cache_set و wp_cache_get استفاده کنید. اما اگه می‌خواید چیزی رو در نشستی کش کنید و در نشست‌ها بعدی ازش استفاده کنید، باید از متدهای کش persistent (یعنی ماندگار) از قبیل Transient API استفاده کنین. شاید بخواید اینجا رو بخونید.

ویرایش شده توسط x86_64
لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...