رفتن به مطلب

کد php پاک کردن تمام کش های سایت برای کاربر


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

سلام

کد یا فانکشنی وجود داره که هر چی فایل js و Css که کاربر از آخرین بازدیدش روی دیوایسش کش شده رو پاک کنه و مجددا لود کنه؟

 

لینک به ارسال

سلام و درود

 

در 8 ساعت قبل، yaali گفته است :

کد یا فانکشنی وجود داره که هر چی فایل js و Css که کاربر از آخرین بازدیدش روی دیوایسش کش شده رو پاک کنه و مجددا لود کنه؟

یه تابعی داره php به اسم filemtime این تابع میاد آخرین تاریخ بروزرسانی فایل رو با فرمت Unix timestamp برمیگردونه.

حالا شما کافیه به صورت کوئری استرینگ این پارامتر رو به جای ورژن فایل های css و js ات اضافه کنی.

<link href="http://example.com/style.css?lm=<?php echo filemtime('style.css'); ?>" rel="stylesheet">

 

موفق باشید

لینک به ارسال
در هم اکنون، mehran-b گفته است :

سلام و درود

 

یه تابعی داره php به اسم filemtime این تابع میاد آخرین تاریخ بروزرسانی فایل با فرمت Unix timestamp برمیگردونه.

حالا شما کافیه به صورت کوئری استرینگ این پارامتر رو به جای ورژن فایل های css و js ات اضافه کنی.


<link href="http://example.com/style.css?lm=<?php echo filemtime('style.css'); ?>" rel="stylesheet">

 

موفق باشید

ممنون مهران جان

الان مثلا من یه فایل css توی مسیر زیر دارم:

 

plugins > myplugin > folder > style.css
 
الان این کدی رو که گفتی چه جوری و کجا باید قرار بدم؟
مرسی
لینک به ارسال
در ۱ ساعت قبل، mehran-b گفته است :

سلام و درود

 

مثلا من الان از این کد برای استایل قالب استفاده میکنم »

 function gh_refresh_styles() {

// عدد 10 رو بعد از هربار ویرایش استایل افزایش میدم

wp_enqueue_style('gh_refresh_styles', get_bloginfo('template_directory') . '/style.css', false, 10);

}

add_action('wp_print_styles', 'gh_refresh_styles');

 

 

حالا برای استایل افزونه باید چه جوری تغییرش بدم؟

لینک به ارسال

درود مجدد

 

به تابع filemtime باید مکان فایل رو در هاست بدید.

برای قالب ها از تابع get_template_directory استفاده میشه و برای پلاگین ها از تابع plugin_dir_path.

به طور مثال الان برای یه قالب بخوایم به فایل استایلش اشاره کنیم کد میشه:

wp_enqueue_style('style', get_bloginfo('stylesheet_url'), array(), (string) filemtime(get_template_directory() . '/style.css'));

و برای یه پلاگین بخوایم به یه فایل style.css توی روتش شاره کنیم کد میشه:

wp_enqueue_style('style', plugin_dir_url(__FILE__).'style.css', array(), (string) filemtime(plugin_dir_path(__FILE__).'style.css'));

 

موفق باشید

لینک به ارسال
در 47 دقیقه قبل، mehran-b گفته است :

موفق باشید

من اینو گذاشتم توی فانکشن افزونه:

function gh_refresh_styles() {
  
wp_enqueue_style('gh_refresh_styles', plugin_dir_url(__FILE__).'/public/js/woocommerce-order.js', array(), (string) filemtime(plugin_dir_path(__FILE__).'/public/js/woocommerce-order.js'));

}

add_action('wp_print_styles', 'gh_refresh_styles');

 

کار نمیکنه

به نظرت مشکلش چیه؟

لینک به ارسال
در هم اکنون، mehran-b گفته است :

مشکل احتمالا اون فوروارد اسلش قبل public است.

یعنی اسلش رو پاک کنم؟

پاک کردم نشد

لینک به ارسال
در هم اکنون، mehran-b گفته است :

به جای wp_print_styles از هوک wp_enqueue_scripts استفاده کن.

اینم نشد مهران جان

شرمنده اذیتت میکنم

add_action('wp_enqueue_scripts', 'gh_refresh_styles');

 

لینک به ارسال
در 2 دقیقه قبل، mehran-b گفته است :

خوب اون یه مشکل بود.

 

این مسیر ها رو درست دارم جایگذاری میکنم؟

هر دو باید عین هم باشن؟

 plugin_dir_url(__FILE__).'/public/js/woocommerce-order.js', array(), (string) filemtime(plugin_dir_path(__FILE__).'/public/js/woocommerce-order.js'));

 

لینک به ارسال
در 1 دقیقه قبل، yaali گفته است :

شرمنده اذیتت میکنم

خواهش میکنم.

در 1 دقیقه قبل، yaali گفته است :

اینم نشد مهران جان

خوب الان این کد دیگه کاملا درسته حالا اینکه کجا رو اشتباه کردی نمیدونم.

کد زیر باید کار کنه.

function gh_refresh_styles() {
  
wp_enqueue_style('gh_refresh_styles', plugin_dir_url(__FILE__).'public/js/woocommerce-order.js', array(), (string) filemtime(plugin_dir_path(__FILE__).'public/js/woocommerce-order.js'));

}

add_action('wp_enqueue_scripts', 'gh_refresh_styles');

البته اگر اون فایل woocommerce-order.js توی اون مسیر باشه.

لینک به ارسال
در 12 دقیقه قبل، mehran-b گفته است :

البته اگر اون فایل woocommerce-order.js توی اون مسیر باشه.

آره هست..

نمیدونم. نمیشه

لینک به ارسال

حالا میشه اول register کنید بعد enqueue کنید.

function gh_refresh_styles() {
  
wp_register_style('gh_refresh_styles', plugin_dir_url(__FILE__).'public/js/woocommerce-order.js', array(), (string) filemtime(plugin_dir_path(__FILE__).'public/js/woocommerce-order.js'));
wp_enqueue_style('gh_refresh_styles');

}

add_action('wp_enqueue_scripts', 'gh_refresh_styles');

 

لینک به ارسال
در 25 دقیقه قبل، mehran-b گفته است :

حالا میشه اول register کنید بعد enqueue کنید.



 

نشد

میگم این کد چی میگه؟

header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');
header('Expires: Mon, 26 Jul 2016 05:00:00 GMT'); // Date in the past
header('Pragma: no-cache'); 

 

لینک به ارسال

درود مجدد

 

در هم اکنون، yaali گفته است :

میگم این کد چی میگه؟

این کد میاد کش فایل HTML خروجی رو غیرفعال میکنه.

برای فایل های JS و CSS خارجی حرکت خاصی نمیزنه.

لینک به ارسال
در 5 ساعت قبل، mehran-b گفته است :

برای فایل های JS و CSS خارجی حرکت خاصی نمیزنه.

یه افزونه پیدا کردم که اینکار رو انجام میده.

لینک به ارسال
  • 6 ماه بعد...

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

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

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

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

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

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

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

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

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