خطاف تعليق WP Discourse لا يؤدي إلى تحديث ذاكرة التخزين المؤقت لـ WP Rocket

كيف نتعامل مع التخزين المؤقت للصفحات في ووردبريس؟

أستخدم WP-Rocket على موقعنا، ولكن التخزين المؤقت للصفحات (نفس المشكلة إذا كنت تستخدم Cloudflare APO فقط) يمنع تحديث عدد التعليقات. لقد تحققت من ذلك عن طريق تعطيل WP-Rocket (و/أو APO)، ونشرت ردًا على منشور المنتدى المقابل، ويتم تحديث عدد التعليقات، ولكن بشكل متقطع. أي، ليس فورًا أو كما قد تتوقع.

لذلك وجدت نصيحة حول إضافة خطاف ويب وهذا سمح بتحديث عدد التعليقات بشكل موثوق.

ومع ذلك، مع تشغيل التخزين المؤقت للصفحات (WP-Rocket أو APO)، واستخدام خطاف الويب هذا، لا يتم تحديث أعداد التعليقات عندما ينشر شخص ما ردًا جديدًا في المنتدى.

الخلاصة، يبدو أن خطاف الويب لا يقوم بتشغيل بيئة ووردبريس بشكل صحيح لتشغيل تحديث الصفحة المخزنة مؤقتًا. يبدو أن لدينا خلل في المصفوفة. :grinning_face_with_smiling_eyes:

تعديل: معلومة إضافية. لدي WP-Rocket معدًا بحيث عندما أكون مسجلاً الدخول إلى ووردبريس، لا يتم تخزين الصفحات مؤقتًا بالنسبة لي. فقط للزوار. لاحظت أنني أرى تحديث أعداد التعليقات عندما أكون مسجلاً الدخول إلى ووردبريس، ولكني لا أراها عندما أكون زائرًا في وضع المتصفح الخاص.

إعجاب واحد (1)

ليس لدي أي إجابات، ولكن كما تعلم، يحاول WP Rocket إنشاء نسخة ثابتة والتخلص من استدعاءات PHP وقاعدة البيانات. إنه ليس تخزينًا مؤقتًا بحد ذاته، ولكن بالتأكيد - هذه مسألة تعريف.

ولكن لدى WP Rocket الكثير من المشكلات حاليًا، وربما تكون هذه واحدة من أقلها أهمية عند التفكير في موقع WordPress نفسه.

حسنًا، بهذه الطريقة يجب أن تعمل.

مرحباً @Brandon007، شكراً لك على شرح مشكلتك. حسب فهمي:

  • يقوم مكون WP Discourse الإضافي بتحديث عدد التعليقات بشكل صحيح.
  • لا يتم مسح ذاكرة التخزين المؤقت لـ WP Rocket عند تحديث عدد التعليقات.

لقد قمت بتغيير عنوان مشاركتك من “مكون WP Discourse الإضافي لا يقوم بتحديث عدد التعليقات” إلى “خطاف ويب تعليقات WP Discourse لا يؤدي إلى تحديث ذاكرة التخزين المؤقت لـ WP Rocket”.

الإجابة الأساسية لمشكلتك هي أن هذا سلوك متوقع. لا يمتلك مكون WP Discourse الإضافي أي تكامل محدد مع WP Rocket ولن يضيف واحداً في المستقبل المنظور.

ولكن لا يزال بإمكاني مساعدتك هنا عن طريق إضافة إجراء يتم تشغيله بعد أن يقوم رد خطاف ويب مزامنة التعليقات بتحديث بيانات الموضوع الوصفية (حيث يتم تخزين عدد التعليقات). يمكنك بعد ذلك كتابة رد الإجراء الخاص بك للقيام بأي مسح لذاكرة التخزين المؤقت ترغب فيه. هل سيعمل ذلك لحالتك؟

3 إعجابات

@Angus لقد فهمت!

ربما سأضيع في كتابة الأكواد، ولكن إذا كان بإمكانك جعل الأمر ممكنًا. فهذا يضعني ويضع المستخدمين الآخرين خطوة في الاتجاه الصحيح. يبدو أن تعديلك سيسمح بإضافة أكواد من جانب المستخدم لمسح ذاكرة التخزين المؤقت لأي إضافة للتخزين المؤقت. سيكون هذا أفضل من التركيز على منتج واحد. لقد جربت عدة طرق للتخزين المؤقت على موقع تطوير وجميعها أعطت نفس النتيجة على أي حال.

لذا استمر يا سيدي العزيز، وشكرًا على الرد.

مرحباً أنجوس. لست متأكداً مما إذا كان هذا شيئاً كنت لا تزال تبحث فيه؟

شيء آخر أردت إضافته. ضمن ووردبريس الأصلي، واستخدام أي شكل من أشكال التخزين المؤقت للصفحات. بمجرد ترك تعليق، يتم مسح ذاكرة التخزين المؤقت للصفحة من تلقاء نفسها. أليس هناك طريقة يمكن لـ WP Discourse محاكاتها لهذا السلوك؟

ليس مع WP Rocket. فهو يحافظ على التعليقات ديناميكية، كما ينبغي.

مرحباً براندون، نعم سيكون هناك إجراء لهذا، مما يسمح لك بمسح ذاكرة التخزين المؤقت لـ WP Rocket (أو أي ذاكرة تخزين مؤقت أخرى) في هذا السيناريو في الإصدار التالي.

أنا لا أشكك في مهاراتك أو مهارات أي شخص آخر ولا أعرف شيئًا، ولكن لا يمكن أن يكون هناك شيء مثل “أو أي ذاكرة تخزين مؤقت” لأن على حد علمي، يحتاج WP Rocket إلى أدوات مختلفة لمسح ذاكرة التخزين المؤقت الخاصة به عن W3 Total Cache عن WP Fastest Cache عن أي وكيل عكسي مثل Varnish أو Nginx.

وإذا كان WP Rocket ينشئ جزءًا ثابتًا من الصفحة، أي ذاكرة التخزين المؤقت، من قسم التعليقات، فهناك مشكلات أكبر بكثير من المسح.

هذا صحيح. سيوفر مكون WP Discourse الإضافي إجراءً يسمح للمواقع التي تستخدم حلول تخزين مؤقت مختلفة بمسح ذاكرة التخزين المؤقت في الوقت المناسب باستخدام أي طريقة مناسبة لحل التخزين المؤقت المستخدم.

إعجاب واحد (1)

أنجوس، شكراً للمتابعة. هل هناك أي فكرة عامة عن موعد الإصدار؟

أيضًا، هل من الممكن لـ WP-Discourse أن يحاكي سلوك تعليقات ووردبريس الأصلية؟ ببساطة، تعني أن حلول التخزين المؤقت للصفحات لديها خيار، بحيث يمكن مسح ذاكرة التخزين المؤقت للصفحة عند قيام المستخدم بترك تعليق جديد على تلك الصفحة. هذا مثالي.

كما تعلم، اعتبارًا من اليوم، لا يمكننا استخدام التخزين المؤقت للصفحات من أي نوع، إذا أردنا زيادة عدد التعليقات. هذا عيب كبير لمستخدمي ووردبريس المهتمين بتحسينات السرعة.

نأمل ألا يكون الأمر كذلك، لأن مثل هذا السلوك سيكون مضيعة رهيبة للموارد وقريبًا جدًا من أن يكون سببًا لإنهاء الصفقة.

ما زلت مرتبكًا بعض الشيء لأن ووردبريس الأصلي لا يحتوي على ذاكرة تخزين مؤقت، و WP Rocket بالتأكيد لا يقوم بمسح ذاكرة التخزين المؤقت بالكامل بعد تعليق.

ملاحظة فقط بأن الإجراء الذي ذكرته أعلاه سيتم إضافته في 2.4.6 والذي يتم إعداده حاليًا للإصدار.

سيستقبل الإجراء معرفات منشورات ووردبريس التي تم تحديثها بواسطة ويبوك كوسيط، أي

do_action( 'wpdc_after_webhook_post_update', $post_ids );

انظر المزيد

4 إعجابات

لم أذكر ذلك، تحديثك حل المشكلة! شكراً لك. :+1:t3:

لأي شخص آخر يواجه هذه المشكلة أثناء تشغيل WP-Rocket مع WP-Discourse. الكود التالي (أدخله في ملف وظائف Wordpress الخاص بك) سيضمن أنه بمجرد نشر تعليق على منشور Discourse المقابل، سيتم مسح ذاكرة التخزين المؤقت لهذا المنشور.

if( function_exists( 'rocket_clean_post' ) ){
	add_action( 'wpdc_after_webhook_post_update', 'bulk_rocket_clean_post’);
}

function bulk_rocket_clean_post(array $ids){
    foreach ($ids as $id) {
        rocket_clean_post($id);
    }
}
3 إعجابات