Arabic (العربية/عربي) translation by Hamdan Veerlax (you can also view the original English article)
خلال هذه السلسلة ، نظرنا في عدد من واجهات برمجة التطبيقات الوصفية التي يقدمها WordPress. يتضمن ذلك واجهة برمجة تطبيقات Post Meta وواجهة مستخدم Meta API. اليوم ، سنقوم بتجميع السلسلة من خلال النظر إلى واجهة برمجة التطبيقات للتعليق على WordPress Comment.
لاحظ أن هذا هو الواجهة الوصفية النهائية لواجهة برمجة تطبيقات WordPress. بدءًا من WordPress 4.4 ، هناك الآن واجهة برمجة تطبيقات Metadata API. لكي نفهمها بشكل كامل ، من المهم أن تفهم التصنيفات والمصطلحات وعلاقاتها في سياق WordPress. في سلسلة قادمة ، سأغطي ذلك بالضبط.
ولكن اليوم ، سنركز على إدارة البيانات الوصفية المرتبطة بالتعليقات. إذا لم تقرأ أي شيء آخر في هذه السلسلة حتى هذه اللحظة ، أوصي بمراجعة ما تناولناه حتى الآن.
إذا كنت جميعًا عالقين ، فلنبدأ.
تعليق وورد API ميتا
خلال هذه السلسلة ، كنا نستخدم تعريف WordPress للبيانات الوصفية كأساس لفهم كيفية تمثيل هذه المعلومات في سياق بيئتنا.
على وجه التحديد ، لقد قلنا:
يتم التعامل مع البيانات الفوقية مع أزواج مفتاح / قيمة. المفتاح هو اسم عنصر البيانات الوصفية. القيمة هي المعلومات التي ستظهر في قائمة البيانات الوصفية في كل مشاركة فردية ترتبط بها المعلومات.
تمشيا مع بقية المحتوى الذي رأيناه خلال هذه السلسلة ، فإن هذا التعريف ينطبق على البيانات الوصفية للتعليقات مثلما هو الحال مع بيانات التعريف الأولية وبيانات تعريف المستخدم.
الاتجاه الصعودي لهذا هو أنه بمجرد أن تحصل على مؤشر على واجهات برمجة التطبيقات المتعددة للبيانات الوصفية التي قمنا بتغطيتها ، يجب ألا يكون هناك مفاجأة كبيرة في كيفية عمل وظيفة البيانات الوصفية الأخرى. قد تكون هناك بعض الأشياء المختلفة بناءً على واجهة برمجة التطبيقات التي تستخدمها ، ولكن ستكون جوهر الوظيفة كما هي.
وكما سترى ، يستمر هذا الوضع مع واجهة برمجة التطبيقات لواجهة بيانات التعليقات.
العمل مع واجهة برمجة تطبيقات Metadata للتعليقات
كما هو الحال مع واجهات برمجة التطبيقات الأخرى التي فحصناها على مدار هذه السلسلة ، هناك أربع وظائف أساسية سنستكشفها:
add_comment_meta
update_comment_meta
get_comment_meta
delete_comment_meta
الآن ، من المحتمل أنك تعرف ما تتوقعه عندما يتعلق الأمر ، على سبيل المثال ، بالاختلافات بين إضافة بيانات تعريف التعليقات وتحديث البيانات الوصفية للتعليقات. أو ، على سبيل المثال ، العمل مع حذف البيانات الوصفية للتعليقات.
هذا لا يغير حقيقة أنه من الجدير استكشاف كل من وظائف API هذه بالتفصيل للتأكد من أننا قمنا بتغطية كل ما نعرفه عند العمل معهم.
بالنسبة لبقية هذه المقالة ، أفترض ما يلي:
- أنت تقوم بتشغيل بيئة تطوير محلية مع خادم ويب ، خادم قاعدة بيانات ، و PHP.
- لديك نسخة من WordPress مثبتة.
- لديك نسخة من
tutsplus-metadata.php
تم إعدادها في دليل المظهر الخاص بك ، وتم تضمينها في ملفfunctions.php
الخاص بموضوعك. - لديك IDE الأمامية والخلفية الأمامية من قاعدة البيانات المتاحة بسهولة.
كما استخدمت خلال المقالات السابقة ، أستخدم التطبيقات التالية:
وأخيرًا ، يتم تخزين جميع البيانات الوصفية التي نعمل بها في جدول قاعدة البيانات wp_commentmeta
، بحيث تكون جميع لقطات الشاشة التي تراها في قاعدة البيانات من هذا الجدول المعين.



بخلاف بعض جداول البيانات الوصفية الأخرى التي رأيناها ، يبدأ جدول wp_commentmeta
فارغًا (على افتراض أنك تعمل باستخدام إصدار جديد نسبياً من WordPress).
هذا أمر جيد لأنه سيعطينا لائحة نظيفة ، من نوع ما ، لاستخدامها عند فحص وظائف API المختلفة. لاحظ أنه بالنسبة إلى جميع الأمثلة أدناه ، سنتأكد من أن كل هذا يحدث في Hello World! بريد. تحتوي هذه المشاركة على الرقم التعريفي 1. إذا كنت تريد استخدام صفحة أخرى ، فما عليك سوى استبدال 1 بمعرّف المشاركة المعنية.
مع كل ذلك في المكان ، دعونا نبدأ بالنظر إلى ما هو متاح.
مضيفا تعليق ميتا
لبدء الخطوات الأولى لإضافة البيانات الوصفية إلى تعليقاتنا ، من المهم إلقاء نظرة على جدول wp_comments
للاطلاع على التعليقات الموجودة بالفعل. إذا كنت تعمل مع تثبيت جديد لـ WordPress ، فسترى على الأرجح سجلًا واحدًا:



هذا هو التعليق الافتراضي الذي يأتي مع WordPress ، وسوف يكون جيدًا للأمثلة التي سنستخدمها.
إذا كنت تعمل ، من ناحية أخرى ، مع قاعدة بيانات مليئة بالتعليقات ، فلا مشكلة! كل ما تحتاج إلى معرفته هو التعليق الذي تعمل عليه (عبر معرفه) ، وتأكد من توافقك مع الرمز الذي نستخدمه أدناه.
كما هو الحال مع واجهات برمجة التطبيقات الأخرى التي راجعناها في هذه السلسلة ، فإن إضافة البيانات الوصفية إلى التعليقات تأتي في شكلين: فريد وغير فريد. سنقوم بمراجعة كليهما.
إضافة بيانات وصفية فريدة
تقبل الوظيفة add_comment_meta
ثلاث معاملات ومعلمة رابعة اختيارية. إذا قمت بتمرير true
كمعلمة رابعة ، فسيتم فقط إضافة بيانات التعريف في حالة عدم وجود مفتاح التعريف المحدد.
منطقي؟ لنلقي نظرة. أولاً ، سنقوم بإعداد وظيفة ستضيف بعض البيانات الوصفية المرتبطة بالتعليق الأول (ولكن لن تفعل ذلك إلا في المشاركة التي تحتوي على معرف 1):
1 |
<?php
|
2 |
|
3 |
add_filter( 'the_content', 'tutsplus_add_unique_comment_meta' ); |
4 |
function tutsplus_add_unique_comment_meta( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
add_comment_meta( 1, 'twitter_handle', 'tommcfarlin', true ); |
8 |
}
|
9 |
|
10 |
return $content; |
11 |
|
12 |
}
|
لاحظ أنني تجاوزت المعامل الحقيقي. لذا في كل مرة أقوم فيها بتحديث الصفحة ، سوف يرى WordPress أنني أريد أن تكون هذه القيمة فريدة حتى لا تضيف أي معلومات إضافية إلى جدول قاعدة البيانات المرتبط بهذا المفتاح الفوقية.
إضافة بيانات غير فريدة
إذا أردت ، من ناحية أخرى ، ربط قيم متعددة بنفس مفتاح التعريف ، فسأزيل المعلمة الحقيقية. إذا أردت ، من ناحية أخرى ، ربط قيم متعددة بنفس مفتاح التعريف ، فسأزيل المعلمة الحقيقية.
1 |
<?php
|
2 |
|
3 |
add_filter( 'the_content', 'tutsplus_add_comment_meta' ); |
4 |
function tutsplus_add_comment_meta( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
add_comment_meta( 1, 'random_value', rand() ); |
8 |
}
|
9 |
|
10 |
return $content; |
11 |
|
12 |
}
|
ثم قم بتحديث الصفحة ، قل ، ثلاث مرات. إذا سارت الأمور كلها كما هو متوقع ، يمكنك مشاهدة ثلاثة سجلات جديدة ، يحتوي كل منها على رقم عشوائي كما تم إنشاؤه بواسطة استدعاء راند ()
في وسيطة قيمة التعريف.



من السهل أن تبقى مستقيمة ، أليس كذلك؟ إذا كنت تريد قيمة واحدة مرتبطة بمفتاح واحد ، فعليك تمرير true
كوسيطة اختيارية رابعة ؛ خلاف ذلك ، لا تحدد أي شيء.
تحديث تعليق التعريف
إذا كنت تريد تحديث البيانات الوصفية للتعليقات الحالية ، فمن المهم معرفة معرف التعليق والمفتاح الفوقية وقيمة التعريف. وهذا يعني أن WordPress سوف ينظر إلى مفتاح التعريف المحدد ويربطه بقيمة التعريف المحددة.
1 |
<?php
|
2 |
|
3 |
add_filter( 'the_content', 'tutsplus_update_comment_meta' ); |
4 |
function tutsplus_update_comment_meta( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
update_comment_meta( 1, 'unique_value', time() ); |
8 |
}
|
9 |
|
10 |
return $content; |
11 |
|
12 |
}
|
إذا كانت قيمة التعريف موجودة ، فستتم الكتابة فوقه. إذا كانت قيمة التعريف موجودة ، فستتم الكتابة فوقه. لاحظ في هذه الجملة الأخيرة أن هناك بعض الوظائف التي يمكنك استخدامها عند إضافة بيانات وصفية: إذا كنت ترغب في الحصول على معلومات فريدة مكتوبة على جدول البيانات التعريفية ، فيمكنك استخدام update_comment_meta
وستكتبها كقيمة فريدة.
قد ينتج عن ذلك القليل من التعليمة البرمجية المربكة (حيث يقرأ كما لو أنه يقوم بتحديث شيء غير موجود) ، ولكنه يسمح لك أيضًا بفرض وجود سجل واحد فقط للمفتاح الفوقية المعين.
ماذا يحدث عندما يكون هناك مفتاح التعريف المرتبط بعدة قيم ميتا؟ في هذه الحالة ، تحتاج إلى معرفة القيمة التي تريد استبدالها. في بعض الحالات ، قد تعرف بالضبط ما هو هذا. في حالات أخرى ، قد تحتاج إلى استرداد المعلومات للعثور عليها (والتي سنغطيها في القسم التالي).
إذا افترضنا أننا نريد تحديث أحد السجلات التي أنشأناها ، مثل أحد الأرقام العشوائية التي رأيناها في المثال أعلاه ، فيمكننا البحث عنها باستخدام واجهة قاعدة البيانات:



وحددها كقيمة سابقة في التعليمة البرمجية التالية:
1 |
<?php
|
2 |
|
3 |
add_filter( 'the_content', 'tutsplus_update_specific_meta' ); |
4 |
function tutsplus_update_specific_meta( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
update_comment_meta( 1, 'unique_value', time(), '17123683' ); |
8 |
}
|
9 |
|
10 |
return $content; |
11 |
|
12 |
}
|
بعد ذلك ، يمكننا تحديث الصفحة وإلقاء نظرة على قاعدة البيانات لدينا ومشاهدة التغيير. لاحظ أن العمل الذي قمنا به للتو له علاقة ببيئة التطوير وليس بالطريقة التي يمكنك من خلالها التعامل مع هذا في الإنتاج.
بدلاً من ذلك ، قد تحتاج إلى تشغيل استعلام أو استرداد مجموعة من القيم قبل تحديثها. هذا يقودنا إلى الموضوع التالي.
استرجاع تعليق ميتا
عندما تقوم باسترداد بيانات تعريف التعليقات ، يجب أن تقرر ما إذا كنت ترغب في استرداد قيمة واحدة أو جميع القيم المرتبطة بالمفتاح الفوقية المحدد.
ربما تكون هناك طريقة أخرى للنظر إلى هذا الأمر على النحو التالي: إذا تمت إضافة عدة أجزاء من البيانات الوصفية باستخدام نفس مفتاح التعريف (الذي تناولناه في قسم إضافة بيانات تعريفية فريدة أعلاه) ، فمن المحتمل أن ترغب في استرداد مجموعة السجلات بأكملها.
من ناحية أخرى ، إذا كنت تريد استرداد سجل واحد فقط لأنك تعرف أنه فريد أو لأنه تم إنشاؤه باستخدام وظيفة update_comment_meta
، فإنك تريد أن يقوم WordPress بإرجاعه لك في قيمة واحدة.
تتطلب الدالة get_comment_meta
ثلاث وسائط ورابع اختياري وفقًا لما تريد استرداده.
استرجاع المصفوفة
لنفترض أنك تبحث عن استرداد مجموعة من جميع القيم المرتبطة بمفتاح تعريف واحد. للقيام بذلك ، يمكنك إجراء مكالمة إلى get_comment_meta
وتحديد معرّف التعليق ومفتاح التعريف.
1 |
<?php
|
2 |
|
3 |
add_filter( 'the_content', 'tutsplus_get_comment_meta' ); |
4 |
function tutsplus_get_comment_meta( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
|
8 |
$arr_metadata = get_comment_meta( 1, 'unique_value', true ); |
9 |
var_dump( $arr_metadata ); |
10 |
|
11 |
}
|
12 |
|
13 |
return $content; |
14 |
|
15 |
}
|
في الكود أعلاه ، نطبعه إلى متصفح الويب ، ولكنك ستتمكن من العمل بهذه البيانات بأي طريقة تريدها بمجرد استردادها. لكن الشيء الأكثر أهمية هو ملاحظة أنه يتم إرجاع القيمة كصفيف.
استرجاع قيمة مفردة
إذا كنت ترغب في استرداد قيمة واحدة ، فأنت تحتاج فقط إلى تحديد معرّف التعليق ومفتاح التعريف في الدالة get_comment_meta
. إذا كنت تتعامل مع مفتاح التعريف مع قيم متعددة ، فإن القيمة الأولى التي تم إنشاؤها هي ما سيتم إرجاعه.
على سبيل المثال ، لنفترض وجود ثلاثة سجلات مرتبطة بمفتاح تعريف واحد ، وتريد استرداد قيمة واحدة فقط. سيبدو رمزك كالتالي:
1 |
<?php
|
2 |
|
3 |
add_filter( 'the_content', 'tutsplus_get_one_comment_meta' ); |
4 |
function tutsplus_get_one_comment_meta( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
|
8 |
$arr_metadata = get_comment_meta( 1, 'random_value', true ); |
9 |
var_dump( $arr_metadata ); |
10 |
|
11 |
}
|
12 |
|
13 |
return $content; |
14 |
|
15 |
}
|
والقيمة الناتجة ستبدو شيئًا كالتالي:
1 |
string(9) "967432645" |
بدلاً من ذلك ، إذا كنت تعرف أن البيانات فريدة ، فستظل الشفرة كما هي ، كما ستظهر القيمة التي تم إرجاعها.
والفرق الوحيد هو أنه تم استرداد المثال الأول من مجموعة من السجلات المتعددة ، وتم استرداد المثال الثاني من سجل واحد. لاحظ أيضًا أنه إذا كنت تتعامل مع قيمة فريدة ، فسيتم إعادتها إليك كمصفوفة ، ولكن مصفوفة فهرس واحدة.
من المهم ملاحظة أنه إذا كنت تخطط لإجراء أي نوع من المقارنة ، خاصةً إلى نوع من نوع مختلف ، مثل عدد صحيح ، فستحتاج إلى الحصول على القيمة من الصفيف ، وستحتاج على الأرجح إلى القيام بنوع التحويل قبل إجراء مقارنة.
حذف تعليق التعريف
يعد حذف البيانات الوصفية عملية مباشرة: يتطلب معرّف التعليق ومفتاحًا وصفيًا وقيمة وصفية اختيارية.
إذا لم تحدد قيمة التعريف ، فستتم إزالة جميع السجلات المرتبطة بالمفتاح التعريفي. ومع ذلك ، إذا حددت قيمة التعريف ، فسيتم إزالة السجل الوحيد فقط.
إزالة القيم الفريدة
لغرض هذا المثال ، افترض أننا نعرف وجود جزء واحد من البيانات الوصفية لمفتاح التعريف المحدد. وهذا يعني أن مفتاح التعريف يجب أن يكون فريدًا لكل مستخدم ، لذلك ربما يستخدم شيئًا مثل معرّف تم إنشاؤه بشكل فريد أو طابع زمني أو شيء مشابه.
لإزالة قيمة فريدة ، فإننا نمرر معرّف التعليق ومفتاح التعريف:
1 |
<?php
|
2 |
|
3 |
add_filter( 'the_content', 'tutsplus_remove_unique_comment_meta' ); |
4 |
function tutsplus_remove_unique_comment_meta( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
delete_comment_meta( 1, 'unique_value' ); |
8 |
}
|
9 |
|
10 |
return $content; |
11 |
|
12 |
}
|
قبل تشغيل هذا الرمز ، يجب أن تبدو قاعدة البيانات كما يلي:



بعد تحديث الصفحة ، إلقاء نظرة على قاعدة البيانات ويجب أن ترى أنه قد تمت إزالة السجل وقاعدة يجب أن تبدو كما يلي:



سنتحدث قليلاً عن الاحتياطات التي يجب اتخاذها عند حذف البيانات في القسم التالي.
إزالة القيم غير الفريدة
في حالات أخرى ، لنفترض أن هناك قيم متعددة مرتبطة بمفتاح تعريف واحد. لقد رأينا هذا مرات عديدة في جميع أنحاء هذه المقالة. إذا كنت ترغب في حذف كافة السجلات المقترنة بمفتاح التعريف ، فإنك لا تحتاج إلى تحديد قيمة تعريف.
بمعنى ، إذا قمت فقط بتمرير معرف تعقيب ومفتاح التعريف إلى الوظيفة delete_comment_meta
، فستقوم بإزالة كل أجزاء بيانات التعريف الخاصة بالتعليقات. اكتب وقم بتنفيذ التعليمات البرمجية التالية:
1 |
<?php
|
2 |
|
3 |
add_filter( 'the_content', 'tutsplus_remove_comment_metadata' ); |
4 |
function tutsplus_remove_comment_metadata( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
delete_comment_meta( 1, 'random_value' ); |
8 |
}
|
9 |
|
10 |
return $content; |
11 |
|
12 |
}
|
قم بتحديث الصفحة الخاصة بك ثم قم بمراجعة قاعدة البيانات. إذا لم تكن هناك أية مشكلات ، يجب أن تكون قاعدة البيانات الخاصة بك خالية من كافة السجلات التي كان بها مفتاح meta السابق:



ولكن تذكر أن إزالة البيانات من قاعدة بيانات قد تكون خطيرة ، خاصة إذا قمت بحذف أي شيء لم تقصد حذفه. ولهذه الغاية ، من المهم الاحتفاظ بنسخ احتياطية لقاعدة بياناتك في بيئات الإنتاج بحيث يمكنك دائمًا استعادتها في حالة حدوث خطأ ما.
علاوة على ذلك ، يوضح هذا أهمية وجود بيئة تطوير محلية وبيئة تدريجية للاختبار قبل نشر التعليمة البرمجية في بيئة إنتاج.
قانون المصدر الكامل
كما هو مقدم خلال هذه السلسلة بأكملها ، إليك نسخة من كل شفرة المصدر التي تناولناها في هذه المقالة. إنه موثق بالكامل ويتضمن تعليقات غير موضحة في بعض الأقسام أعلاه.
1 |
<?php
|
2 |
/**
|
3 |
* This file shows how to work with the common Comment Meta API functions.
|
4 |
*
|
5 |
* Namely, it demonstrates how to use:
|
6 |
* - add_comment_meta
|
7 |
* - update_comment_meta
|
8 |
* - get_comment_meta
|
9 |
* - delete_comment_meta
|
10 |
*
|
11 |
* Each function is hooked to 'the_content' so that line will need to be
|
12 |
* commented out depending on which action you really want to test.
|
13 |
*
|
14 |
* Also note, from the tutorial linked below, that this file is used form
|
15 |
* demonstration purposes only and should not be used in a production
|
16 |
* environment.
|
17 |
*
|
18 |
* Tutorial:
|
19 |
* https://code.tutsplus.com/tutorials/how-to-work-with-wordpress-post-metadata--cms-25715
|
20 |
*
|
21 |
* @version 1.0.0
|
22 |
* @author Tom McFarlin
|
23 |
* @package tutsplus_wp_metadata
|
24 |
*/
|
25 |
|
26 |
/* add_filter( 'the_content', 'tutsplus_add_unique_comment_meta' ); */
|
27 |
/**
|
28 |
* Adds a unique meta key and meta value for a user's Twitter handle
|
29 |
* to the comment metadata table associated with the comment having
|
30 |
* the ID of 1.
|
31 |
*
|
32 |
* @param string $content The content of the post.
|
33 |
* @return string $content THe content of the post.
|
34 |
*/
|
35 |
function tutsplus_add_unique_comment_meta( $content ) { |
36 |
|
37 |
if ( 1 === get_the_ID() ) { |
38 |
add_comment_meta( 1, 'twitter_handle', 'tommcfarlin', true ); |
39 |
}
|
40 |
|
41 |
return $content; |
42 |
|
43 |
}
|
44 |
|
45 |
/* add_filter( 'the_content', 'tutsplus_add_comment_meta' ); */
|
46 |
/**
|
47 |
* Adds a unique meta key and random meta value
|
48 |
* to the comment metadata table associated with the comment having
|
49 |
* the ID of 1.
|
50 |
*
|
51 |
* @param string $content The content of the post.
|
52 |
* @return string $content THe content of the post.
|
53 |
*/
|
54 |
function tutsplus_add_comment_meta( $content ) { |
55 |
|
56 |
if ( 1 === get_the_ID() ) { |
57 |
add_comment_meta( 1, 'random_value', rand() ); |
58 |
}
|
59 |
|
60 |
return $content; |
61 |
|
62 |
}
|
63 |
|
64 |
/* add_filter( 'the_content', 'tutsplus_update_comment_meta' ); */
|
65 |
/**
|
66 |
* Updates unique meta key and unique meta value for
|
67 |
* to the comment metadata table associated with the comment having
|
68 |
* the ID of 1.
|
69 |
*
|
70 |
* @param string $content The content of the post.
|
71 |
* @return string $content THe content of the post.
|
72 |
*/
|
73 |
function tutsplus_update_comment_meta( $content ) { |
74 |
|
75 |
if ( 1 === get_the_ID() ) { |
76 |
update_comment_meta( 1, 'unique_value', time() ); |
77 |
}
|
78 |
|
79 |
return $content; |
80 |
|
81 |
}
|
82 |
|
83 |
/* add_filter( 'the_content', 'tutsplus_update_specific_meta' ); */
|
84 |
/**
|
85 |
* Updates a unique meta key and random meta value with a specified value
|
86 |
* to the comment metadata table associated with the comment having
|
87 |
* the ID of 1.
|
88 |
*
|
89 |
* @param string $content The content of the post.
|
90 |
* @return string $content THe content of the post.
|
91 |
*/
|
92 |
function tutsplus_update_specific_meta( $content ) { |
93 |
|
94 |
if ( 1 === get_the_ID() ) { |
95 |
update_comment_meta( 1, 'random_value', time(), '17123683' ); |
96 |
}
|
97 |
|
98 |
return $content; |
99 |
|
100 |
}
|
101 |
|
102 |
/* add_filter( 'the_content', 'tutsplus_get_comment_meta' ); */
|
103 |
/**
|
104 |
* Gets an array of the comment metadata associated with the meta key
|
105 |
* in the comment metadata table associated with the comment having
|
106 |
* the ID of 1.
|
107 |
*
|
108 |
* @param string $content The content of the post.
|
109 |
* @return string $content THe content of the post.
|
110 |
*/
|
111 |
function tutsplus_get_comment_meta( $content ) { |
112 |
|
113 |
if ( 1 === get_the_ID() ) { |
114 |
|
115 |
$arr_metadata = get_comment_meta( 1, 'unique_value' ); |
116 |
var_dump( $arr_metadata ); |
117 |
|
118 |
}
|
119 |
|
120 |
return $content; |
121 |
|
122 |
}
|
123 |
|
124 |
/* add_filter( 'the_content', 'tutsplus_get_all_comment_meta' ); */
|
125 |
/**
|
126 |
* Gets an array of all the meta values associated with the specified meta key
|
127 |
* in the comment metadata table associated with the comment having
|
128 |
* the ID of 1.
|
129 |
*
|
130 |
* @param string $content The content of the post.
|
131 |
* @return string $content THe content of the post.
|
132 |
*/
|
133 |
function tutsplus_get_all_comment_meta( $content ) { |
134 |
|
135 |
if ( 1 === get_the_ID() ) { |
136 |
|
137 |
$arr_metadata = get_comment_meta( 1, 'random_value' ); |
138 |
var_dump( $arr_metadata ); |
139 |
|
140 |
}
|
141 |
|
142 |
return $content; |
143 |
|
144 |
}
|
145 |
|
146 |
/* add_filter( 'the_content', 'tutsplus_get_one_comment_meta' ); */
|
147 |
/**
|
148 |
* Gets a single value from a set of values associated with a meta key
|
149 |
* in the comment metadata table associated with the comment having
|
150 |
* the ID of 1.
|
151 |
*
|
152 |
* @param string $content The content of the post.
|
153 |
* @return string $content THe content of the post.
|
154 |
*/
|
155 |
function tutsplus_get_one_comment_meta( $content ) { |
156 |
|
157 |
if ( 1 === get_the_ID() ) { |
158 |
|
159 |
$arr_metadata = get_comment_meta( 1, 'random_value', true ); |
160 |
var_dump( $arr_metadata ); |
161 |
|
162 |
}
|
163 |
|
164 |
return $content; |
165 |
|
166 |
}
|
167 |
|
168 |
/* add_filter( 'the_content', 'tutsplus_remove_unique_comment_meta' ); */
|
169 |
/**
|
170 |
* Removes a unique meta value associated with the specified key
|
171 |
* to the comment metadata table associated with the comment having
|
172 |
* the ID of 1.
|
173 |
*
|
174 |
* @param string $content The content of the post.
|
175 |
* @return string $content THe content of the post.
|
176 |
*/
|
177 |
function tutsplus_remove_unique_comment_meta( $content ) { |
178 |
|
179 |
if ( 1 === get_the_ID() ) { |
180 |
delete_comment_meta( 1, 'unique_value' ); |
181 |
}
|
182 |
|
183 |
return $content; |
184 |
|
185 |
}
|
186 |
|
187 |
/* add_filter( 'the_content', 'tutsplus_remove_comment_metadata' ); */
|
188 |
/**
|
189 |
* Removes all meta values associated with the specified key
|
190 |
* to the comment metadata table associated with the comment having
|
191 |
* the ID of 1.
|
192 |
*
|
193 |
* @param string $content The content of the post.
|
194 |
* @return string $content THe content of the post.
|
195 |
*/
|
196 |
function tutsplus_remove_comment_metadata( $content ) { |
197 |
|
198 |
if ( 1 === get_the_ID() ) { |
199 |
delete_comment_meta( 1, 'random_value' ); |
200 |
}
|
201 |
|
202 |
return $content; |
203 |
|
204 |
}
|
لاحظ أنه إذا قمت بتضمين هذا الرمز مع باقي المقالات في السلسلة ، فستحتاج إلى توخي الحذر. نظرًا لأن كل شيء مسجل بنفس الخطاف ، فقد ينتهي بك الأمر إلى نتائج غريبة.
لمكافحة هذا ، أوصي بأحد السيناريوهات التالية اثنين:
- أنشئ ثلاثة ملفات منفصلة: واحدة لكل نوع من أنواع واجهات برمجة التطبيقات الوصفية التي قمنا بفحصها.
- قم بالتعليق على مكالمات
add_filter
، باستثناء تلك التي تعمل بها حاليًا.
وسيسهل أي من هذين الخيارين العمل مع جميع الرموز التي قمنا بتغطيتها حتى الآن.
استنتاج
سواء كنت تعمل باستخدام واجهة برمجة تطبيقات للبيانات الوصفية أو أحد واجهات برمجة التطبيقات الأخرى ، يجب أن يكون لكل مطور WordPress وصول سريع إلى Codex WordPress للبحث السريع عن واجهات برمجة التطبيقات المتاحة وكيفية استخدامها.
نظرًا لأننا عملنا من خلال هذه السلسلة ، يجب أن ترى كيف تتوافق واجهة برمجة التطبيقات المصممة حول البيانات الوصفية. وهذا يجعل واجهة برمجة التطبيقات سهلة الاستخدام وقوية لتوسيع بعض وظائف WordPress الأساسية.
بالإضافة إلى ذلك ، لقد ذكرت أن هناك واجهة برمجة تطبيقات بيانات وصفية أخرى تم تقديمها في WordPress 4.4. أخطط لتغطية ذلك في سلسلة قادمة ، ولكنها تتطلب فحصًا لبعض الوظائف الأخرى التي تستند إليها.
في الوقت الحالي ، قمنا بتغطية الكثير من المواد لمساعدتك على رفع مستوى مهاراتك الحالية في WordPress. حتى المقالة التالية ، تذكر أن كل دوراتي وبرامجي التعليمية متوفرة على صفحة ملفي الشخصي ، ويمكنك قراءة المزيد من المقالات حول تطوير WordPress و WordPress على مدونتي.
WordPress لديها اقتصاد نشط. هناك مواضيع ، ومكوِّنات إضافية ، ومكتبات ، والعديد من المنتجات الأخرى التي تساعدك على بناء موقعك والمشروع. إن طبيعة المصدر المفتوح للنظام الأساسي يجعله أيضًا خيارًا رائعًا يمكنك من خلاله تحسين مهاراتك في البرمجة. أيا كان الحال ، يمكنك أن ترى ما لدينا كل ما هو متاح في سوق Envato.
لا تتردد في متابعتي على Twitter بالإضافة إلىtommcfarlin@ ، حيث أتحدث عن العديد من ممارسات تطوير البرامج ، والتي يرتبط الكثير منها بتطوير الويب والعديد منها موجه بشكل خاص نحو WordPress.
كما هو الحال مع جميع مقالاتي ، لا تتردد في ترك أي أسئلة أو تعليقات في الخلاصة أدناه ، وسأحاول الرد على كل منها.