دليل العابرين في ووردبريس

نشرت: 2023-02-12

بصفتك مطور WordPress ، ربما تعرف بالفعل مدى أهمية الأداء لموقع ويب ناجح. ومع ذلك ، قد يكون فهم العابرين في WordPress وكيف سيساعدونك في تحسين مشاريعك أمرًا صعبًا بعض الشيء.

لحسن الحظ ، عندما تفككهم ، ليس من الصعب فهم العابرين. طالما أنك تضع بعض الإرشادات الأساسية في الاعتبار ، يجب أن تكون في طريقك لدمجها في مكون WordPress الإضافي التالي.

في هذا المنشور ، سنقدم نظرة عامة على ماهية عابر WordPress ، جنبًا إلى جنب مع كيف ومتى يتم استخدامها. هناك الكثير من الأرضية التي يجب تغطيتها ، لذا دعنا نصل إليها!

جدول المحتويات
1. ما المقصود بـ WordPress Transients؟
2. فوائد استخدام العابرين على موقع WordPress الخاص بك
3. عيوب استخدام العابرين على موقع ووردبريس الخاص بك
4. متى يجب استخدام ووردبريس العابرين
5. إدارة عابر وورد
6. العمليات الأساسية المستخدمة في العابرين
6.1 1. تحديد العابرين
6.2 2. استرداد العابرين
6.3 3. حذف العابرين
7. انتهاء الصلاحية العابر: كيف يعمل؟
8. فهم واجهة برمجة تطبيقات WordPress Transients API
8.1 التطبيقان الأكثر شيوعًا للواجهة الخلفية لـ Transients API:
9. تطبيق العابرين في التنمية الخاصة بك
10. فعل المزيد مع موقع WordPress الخاص بك

ما المقصود بـ WordPress Transients؟

لفهم العابرين ، من المفيد أن يكون لديك بعض المعرفة الأساسية بالتخزين المؤقت وواجهات برمجة التطبيقات (APIs).

يعد التخزين المؤقت لبيانات صفحة الويب في الأساس طريقة لحفظ بيانات موقع الويب مؤقتًا بحيث إذا كانت هناك طلبات متعددة لنفس البيانات ، فلا يتعين على الموقع إعادة تشغيل MySQL أو PHP. هذا يمكن أن يوفر ثوان من الوقت ويقلل من تحميل الخادم.

الفكرة هي الاحتفاظ بالبيانات مؤقتًا ، ومن هنا جاءت كلمة "العابرون". تشبه واجهة برمجة تطبيقات Transients API لخيارات WordPress. أنت تعطي اسمًا وقيمة للبيانات - والتي يمكن أن تكون معقدة ، مثل مصفوفة PHP متعددة المستويات - وتقوم بتخزين البيانات. لاحقًا ، ربما بناءً على طلب مختلف ، يمكنك استرداد تلك البيانات باستخدام اسمها. الفرق هو أن البيانات في جدول الخيارات ستبقى إلى الأبد. أي أنه يمكنك تخزين البيانات ، وبعد ثلاث سنوات ، ستظل موجودة.

كل عابر يتكون من ثلاثة أجزاء:

  • عابر. هذه هي السلسلة المستخدمة لتحديد عابرك واستدعائه. يُشار إليه أيضًا باسم "المفتاح" أو "الاسم" العابر.
  • قيمة دولار. هذه هي المعلومات التي يتم استردادها عبر API. يمكن أن تكون قيمة عابر كائنًا أو مصفوفة أو رقمًا أو سلسلة.
  • انتهاء الصلاحية. هذه هي المدة التي تبقى فيها مؤقتًا في قاعدة البيانات الخاصة بك ، قبل أن يتم حذفها ويجب عليك الوصول إلى المعلومات التي تحتاجها من خلال واجهة برمجة التطبيقات مرة أخرى.

على السطح ، هذا كل ما في عابر WordPress. ومع ذلك ، من أجل استخدامها بشكل صحيح ، هناك المزيد الذي تحتاج إلى معرفته.

ومع ذلك ، لن تظل بيانات العابرين ثابتة. هذا هو بيت القصيد! يمكنك طلب البيانات وتجد أنها مفقودة بإحدى طريقتين. أولاً ، عندما تقوم بتخزين البيانات ، فإنك تحدد تاريخ انتهاء الصلاحية. على سبيل المثال ، يمكنك قول "تخزين هذا لمدة ثلاث ساعات". لذلك إذا طلبت ذلك بعد أربع ساعات ، فسيكون مفقودًا.

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

بسبب هذا الشيء "يتلاشى في أي وقت" ، فإنك تستخدم عمومًا العابرين لذاكرة التخزين المؤقت. بمعنى ، إذا كنت بحاجة إلى حساب شيء ما يستغرق وقتًا حقيقيًا ، مثل استعلام MySQL البطيء ، أو استرداد البيانات من مصدر خارجي مثل Twitter أو موجز RSS لشخص ما ، فيمكنك تخزين البيانات المحسوبة في وقت عابر ، مع العلم أنه إذا فقدت من الممكن دائمًا إعادة إنشائه. ولكن في الحالة المعتادة - عندما لا تختفي - تكون لديك البيانات بسرعة دون الحاجة إلى إعادة الحساب.

فوائد استخدام العابرين على موقع WordPress الخاص بك

كما ذكرنا سابقًا ، تتمثل الفائدة الأساسية للمترفعين في تحسين أداء موقع الويب. إليك مخطط تقريبي لكيفية عمل ذلك ، باستخدام مكون Google Site Kit كمثال.

عند تنشيط المكون الإضافي ، فإنه يستخدم واجهة برمجة تطبيقات لعرض البيانات من الأنظمة الأساسية مثل Analytics و Search Console في لوحة معلومات WordPress. بدون العابرين ، سيتعين على WordPress استرداد هذه المعلومات من كل أداة في كل مرة تشاهد فيها لوحة معلومات Site Kit:

بدلاً من ذلك ، تشتمل Site Kit على عوامل عابرة تخزن البيانات مؤقتًا من Analytics و Search Console. يتم تخزينها ليوم واحد (أو ساعة واحدة إذا لم تُرجع المنصة أية بيانات).

في كل مرة تصل فيها إلى لوحة معلومات Site Kit الخاصة بك ، يمكن لـ WordPress استرداد المعلومات المخزنة بسرعة من قاعدة البيانات الخاصة بك بدلاً من الاضطرار إلى استدعاء API مرة أخرى. عند انتهاء فترة الصلاحية ، يتم حذف البيانات القديمة.

هذا يعني أنك لست مضطرًا إلى الانتظار حتى يتم تحميل نتائجك في كل مرة. يكون هذا مفيدًا في مجموعة متنوعة من المواقف ، مثل إظهار عدد مشاركات الوسائط الاجتماعية لمشاركاتك أو عرض ملف إخباري.

عيوب استخدام العابرين على موقع WordPress الخاص بك

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

متى تستخدم ووردبريس العابرين

يتم حذف العابرين من قاعدة البيانات الخاصة بك بمجرد وصولهم إلى نهاية فترة انتهاء صلاحيتهم. لهذا السبب ، فأنت تريد فقط استخدامها للمعلومات التي يتم إعادة إنشائها باستمرار.

بالإضافة إلى ذلك ، على الرغم من قدرتها على تحسين أداء مشروعك ، فمن الأفضل حجز العابرين للاستعلامات الكبيرة والمكالمات عن بُعد. إذا كان الأمر يتطلب المزيد من التعليمات البرمجية لإنشاء رمز عابر أكثر مما يتطلبه تقديم طلب جديد للمورد في كل مرة يحتاج فيها ، فمن الأفضل عدم القيام بذلك.

إدارة عابر WordPress

إذا كنت ترغب في رؤية وإدارة العابرين التي تعمل حاليًا على موقع WordPress الخاص بك بسهولة ، فيمكنك تثبيت المكون الإضافي Transients Manager:

يوفر قائمة كاملة من العابرين ، والتي يمكنك العثور عليها بالانتقال إلى أدوات> عابرون :

هنا يمكنك رؤية جميع العناصر المؤقتة الثلاثة التي ذكرناها سابقًا - المفتاح (الاسم) والقيمة وفترة انتهاء الصلاحية. يمكنك تعديل أي من هذه الميزات من خلال النقر على رابط "تعديل" :

يمكنك أيضًا حذف العابرين بشكل فردي أو جماعي.

العمليات الأساسية المستخدمة في العابرين

عندما يتعلق الأمر بترميز العابرين ، فهناك ثلاث عمليات أساسية ستحتاج على الأرجح لاستخدامها. لقد حددنا كل واحد منهم أدناه ، مع الاستمرار في استخدام Site Kit كمثال.

1. تحديد العابرين

إنشاء أو "إعداد" العابرين هو عملية تحديد المفتاح والقيمة وفترة انتهاء الصلاحية ، وتطبيق تلك المعلومات على البيانات ذات الصلة. للقيام بذلك ، ستستخدم التنسيق التالي:

 Set_transient ('key', $value, expiration_period)

فيما يلي الكود المستخدم في Google Site Kit لتعيين المؤقت الذي يخزن بيانات التحليلات:

 // Cache "data found" status for one day, "no data" status for one hour. set_transient( $transient_key, (int) $has_data, $has_data ? DAY_IN_SECONDS : HOUR_IN_SECONDS ); } return (bool) $has_data; } }

المفتاح العابر هو googlesitekit_analytics_has_data (تم تعريفه مسبقًا في الكود) ، والقيمة هي $ has_data أو $ has_data؟ ، وفترة الصلاحية يوم واحد أو ساعة واحدة (حسب القيمة).

2. استرداد العابرين

استرجاع العابرين أكثر تعقيدًا بعض الشيء. أولاً ، تحتاج إلى استخدام وظيفة لطلب البيانات اللازمة. ثم ستتحقق لمعرفة ما إذا كان يحتوي على عابر مقابل يجب تحميله ، بدلاً من تقديم طلب API جديد.

قد تبدو النتيجة كما يلي:

 function some_function(){ $transient = get_transient('key');

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

في Google Site Kit ، يبدو هذا كما يلي:

 /** * Checks whether Analytics data exists for the given URL. * * @since 1.4.0 * * @param string $url The url to check data for. * @return bool */ protected function has_data_for_url( $url ) { if ( ! $url ) { return false; } $transient_key = 'googlesitekit_analytics_has_data_' . md5( $url ); $has_data = get_transient( $transient_key ); if ( false === $has_data ) { /* @var Google_Service_AnalyticsReporting_Report[]|WP_Error $reports Array of reporting report instances. */ $reports = $this->get_data( 'report', array( 'url' => $url, 'metrics' => array( array( 'expression' => 'ga:users' ), array( 'expression' => 'ga:sessions' ), ), ) ); if ( is_wp_error( $reports ) ) { $reports = array(); // Bypass data check and cache. } foreach ( $reports as $report ) { /* @var Google_Service_AnalyticsReporting_Report $report Report instance. */ $report_data = $report->getData(); /* @var Google_Service_AnalyticsReporting_ReportData $report_data Report data instance. */ foreach ( $report_data->getTotals() as $date_range_values ) { /* @var Google_Service_AnalyticsReporting_DateRangeValues $date_range_values Values instance. */ if ( isset( $date_range_values[0], $date_range_values[1] ) && ( 0 < $date_range_values[0] || 0 < $date_range_values[1] ) ) { $has_data = true; break 2; } } }

يجب أن يتبع هذا الرمز بعد ذلك المقتطف الذي قمنا بتضمينه في القسم السابق لتعيين العابرين.

3. حذف العابرين

في بعض الحالات ، قد تجد أنك تريد إزالة ملف. على سبيل المثال ، إذا كنت تريد دائمًا رؤية أحدث التحليلات في Google Site Kit ، فمن الأفضل عدم تخزين البيانات مؤقتًا (على الرغم من أننا لا نوصي بحذف عابر Site Kit).

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

أسهل طريقة لحذف العابرين هي باستخدام البرنامج المساعد Transients Manager. ومع ذلك ، إذا كنت تريد استخدام التعليمات البرمجية بدلاً من ذلك ، فيمكنك استخدام وظيفة delete_transient () . كل ما تحتاجه هو المفتاح المؤقت:

 delete_transient('key');

ومع ذلك ، سيتعين عليك تكرار هذا لكل عابر ترغب في حذفه.

انتهاء الصلاحية العابر: كيف يعمل؟

يمكن التعبير عن فترات انتهاء الصلاحية المؤقتة بعدة طرق مختلفة. أبسط خيارين هما:

  • بالثواني ( set_transient ('key'، $ value، 86400))
  • استخدام ثوابت وقت WordPress ( set_transient ('key'، $ value، DAY_IN_SECONDS))

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

إن إنشاء عابرين لا تنتهي صلاحيته أمر بسيط للغاية. ما عليك سوى ترك معلمة انتهاء الصلاحية فارغة في دالة set_transient أو تحديدها على أنها صفر.

فهم واجهة برمجة تطبيقات WordPress Transients API

واجهة برمجة تطبيقات WordPress Transients API هي ببساطة الوسيلة التي يتم من خلالها تخزين المعلومات مؤقتًا في قاعدة بيانات موقعك. إنه يمكّن جميع العمليات ذات الصلة التي ناقشناها خلال هذا المنشور ، بما في ذلك الإعداد والحصول على وحذف العابرين.

بعبارة أخرى ، فإن Transients API هي مجرد جزء من جوهر WordPress الذي يتيح لك استخدام العابرين.

التطبيقان الأكثر شيوعًا للواجهة الخلفية لـ Transients API:

  1. واحد مدمج في WordPress ، وبالتالي فهو الأكثر شيوعًا إلى حد بعيد. يتم تخزين القيم المؤقتة في جدول wp_options تمامًا مثل الخيارات العادية. مع العابرين ، يتم تخزين خيار إضافي للاحتفاظ بتاريخ انتهاء الصلاحية. عندما يتم الوصول إلى عابر ، يسحب WordPress تاريخ انتهاء الصلاحية أولاً. إذا انتهت صلاحيته ، يقوم WordPress بحذف كلا الخيارين من الجدول ، وبالتالي "تنظيف" البيانات ، ويتظاهر بأن البيانات لم تكن موجودة أبدًا. إذا لم تنته صلاحيته ، فإنه يأخذ المحتوى من جدول الخيارات.
  2. ميمكاشد. Memcached هو برنامج بسيط للغاية ولكنه فعال وموثوق من جانب الخادم مصمم للقيام بالضبط بما يفترض أن تقوم به Transients API - تخزين البيانات على أساس مفتاح ، والتي تنتهي صلاحيتها في وقت معين ، والتي يمكن أن تختفي في أي وقت إذا لزم الأمر ل.

استخدام memcached بدلاً من WordPress Transients له ميزتان خاصتان ، وهذا هو السبب في أننا نقوم تلقائيًا بتكوينه مسبقًا لك هنا في WP Engine. لقد حصلنا على ظهرك

أنا. Memcached أسرع بـ 10x-100x في تخزين واسترجاع القيم من WordPress Transients ، وهو أمر مثير للاهتمام بشكل خاص لأن نقطة العابرين هي تخزين البيانات مؤقتًا لزيادة سرعة الموقع.

ثانيا. يحدد Memcached الحد الأقصى من المساحة التي سيشغلها مع البيانات (على سبيل المثال 64 ميغا بايت من ذاكرة الوصول العشوائي) ، مما يعني أنه إذا قام الموقع بتخزين الكثير من البيانات في وقت واحد ، فسيتم التخلص تلقائيًا من البيانات القديمة ، وبالتالي لن تنفد المساحة أبدًا. لكن عابر WordPress المدمج سيخزن كمية عشوائية من البيانات في جدول الخيارات.

تطبيق العابرين في تطورك

لنفترض أنك تقرأ وتكتب نفس مفتاح Transients بشكل متكرر ، وافترض أنه 1 كيلو من البيانات. في هذه الحالة ، سيقوم كل من Memcached و WordPress Transients بما تتوقعه تمامًا ، وسيشغل كلاهما حوالي 1 كيلو من المساحة (إما في جدول الخيارات أو في memcached).

لنفترض الآن أنك تقرأ وتكتب مفاتيح انتقالية مختلفة ، مختلفة لكل جلسة متصفح. باختصار ، ماذا لو كنت تقوم بتخزين بيانات جلسة المستخدم في Transients؟ هذا منطقي على السطح. لا ينبغي أن تدوم بيانات الجلسات إلى الأبد ، ولا تريد أن تهتم بجداول قاعدة البيانات الخاصة. إلى جانب ذلك ، لا تسمح العديد من شركات استضافة WordPress بجلسات PHP ، لذلك هذا هو أفضل شيء تالي. إنه سريع ومتعدد الخوادم.

هنا تظهر الاختلافات. مع Memcached ، ومع موقع ذي حركة مرور منخفضة ، يبدو أن هذه الطريقة تعمل. تستمر القيم لفترة من الوقت ، ثم يتم حذفها عند انتهاء صلاحيتها. ومع ذلك ، إذا تم تحميل الخادم بكثافة ، فإن كمية بيانات الجلسة التي يحتاج الخادم لتخزينها ستتجاوز المساحة المتاحة في memcached ، وبالتالي ستبدأ في فقدان بيانات الجلسة في وقت أقرب مما كنت تعتقد. وإذا لم تختبر في هذه البيئة الدقيقة المحملة بشدة ، فلن تعرف ذلك أبدًا. بشكل عام ، تنتهي هذه البيئات بملء memcached بسرعة بحيث يتم تعطيل memcached بشكل فعال لأنه لا يمكن أبدًا الاحتفاظ بالبيانات لفترة كافية لتكون مفيدة. ليس لديك فعليًا ذاكرة تخزين مؤقت لواجهة برمجة تطبيقات عابرة على الإطلاق!

ولكن مع WordPress Transients ، تحصل على سلوك مختلف ولكن لا يزال غير مرغوب فيه للغاية. نظرًا لأن القيم مكتوبة في قاعدة البيانات ، وليست كتلة ذات حجم ثابت من ذاكرة الوصول العشوائي ، فإنها جميعًا تظل ثابتة. مما يعني أنه حتى مع الموقع المحمّل بشكل كبير ، لا يزال لديك بيانات الجلسة الخاصة بك. مذهل!

أو هكذا ظننت. لأن ما لا يُقال في Transient API هو ما يحدث عند استخدام مفاتيح فريدة مثل الجلسات. وما يحدث في الطريقة المدمجة هو أن جدول الخيارات يمتلئ إلى أجل غير مسمى! لأن: "تنظيف البيانات القديمة" في WordPress لا يعمل إلا عندما تطلب المفتاح (كما غطينا سابقًا). إذا تركت المفتاح للتو ، فسيبقى في جدول الخيارات إلى الأبد. لا توجد عملية منفصلة تنظف هذه الأشياء!

لسنا على دراية بهذه المشكلة فحسب ، بل نريد مساعدة عملائنا الذين ربما يقومون بتشغيل كود لا يفهم هذا. وهنا يأتي دور "المُدارة" في Managed WordPress! كل ليلة ، لدينا عملية آلية للبحث في جدول الخيارات الخاص بك عن العابرين منتهية الصلاحية ، وحذفهم (كل من البيانات وعناصر تاريخ انتهاء الصلاحية). فقاعة! لقد رحلوا ، ولا داعي للقلق عليهم.

لذلك من الرائع أن نقوم بذلك ، ولكن بصفتك مطورًا لمكوِّن إضافي أو سمة عامة من المفترض أن تعمل بشكل صحيح في أي بيئة استضافة ، لا يمكنك القيام بذلك في جميع البيئات المحتملة التي قد يتم فيها نشر المكون الإضافي أو السمة الخاصة بك ، وأنت تريد التأكد من أنك تزود المستخدمين والعملاء بأكبر رمز ممكن.

ومع ذلك ، بعد أن عرفت الآن كيف يمكن أن ينحرف العابرون ، فقد تكون فكرة رائعة أن تلقي نظرة ومعرفة كيف يمكنك جعل شفرتك أكثر كفاءة. هناك احتمالات ، إذا كنت قد قرأت هذا الآن ، فأنت تحب تحسين الكود الخاص بك ، وقد يؤدي منشور المدونة هذا إلى إلقاء التحدي لك وتحفيزك على إعادة كتابة بعض الأشياء لتكون أكثر قابلية للتوسع!

افعل المزيد مع موقع WordPress الخاص بك

بصفتك مطور WordPress ، فإن تزويد المستخدمين النهائيين بإمكانية الوصول إلى البيانات البعيدة مع الحفاظ على الأداء السريع هو المفتاح. يمكن أن تساعدك عابرات WordPress في تحقيق ذلك.

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