wordpress-logo

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

 

3 نقاط قبل البداية:

1- يوفر (WordPress API -Application Programming Interface) عدداً من الطرق لمعالجة البيانات مباشرة من دون الوصول لقاعدة البيانات، لذا ليس من الضروري معرفة كيفية تنظيم قواعد البيانات، لكن معرفتك بها سوف تؤدي إلى ايجاد حلول أسرع و أسهل في التنفيذ لمشاكلك.

2- مخطط قاعدة بيانات الوردبرس صغير و بسيط، لذا فلا داعي للخوف، فهم مجرد 10 جداول، يحتوي كل منهم على عدد قليل من الأعمدة. و سوف تتذكرهم بكل سهولة بمجرد اطلاعك عليهم.

WP_27_dbsERD

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

نحتاج في هذا الشرح إلى فتح صفحة tab جديدة في المتصفح لتشاهد Database Description ، و استخدم سيرفر محلى (طريقة تركيبه و كيفية عمله).

 

الجدول الأول wp-posts

WP_27_dbsERD

هذا هو الجدول الرئيسي للوردبرس، فهو يحتوي على المقالات و الصفحات و المرفقات. بصورة فعلية بتم حفظ المرفقات كما هي في المساحة الخاصة بالموقع أو المدونة -الإستضافة- ، لكن تستخدم وردبرس هذا الجدول في حفظ المعلومات الخاصة بالمرفق (attachment meta information) مثل ID (الرقم التعريفي) للمستخدم الذى قام بتحميل المرفق، و ID المقال الذى المراد اضافة المرفق له، و عنوان المرفق، و وصفه الخ ..

المقالات و الصفحات و المرفقات يوجد بينها صفات متشابهة و مختلفة، لننظر إلى ما يجمعها:

- رقم تعريفي مميز (Unique ID): يتم توليده تلقائياً بواسطة قاعدة البيانات – MySQL.

- الكاتب (Author): و هو كاتب المقال أو كاتب الصفحة او من قام برفع المرفق.

- التاريخ (Date).

- العنوان (Title).

- الوصف (description).

و للتفريق بينهم في الجدول، يستخدم الوردبرس العمود post-type، و الذى تكون قيمته الإفتراضية post، و تتغير إلى page أو attachment حسب الحاجة.

كما أن هناك بعض الأعمدة في هذا الجدول لا تعمل إلا مع الخيارات المخالفة لـ post في post-type، مثل عمود post_mime_type و الذى يستخدم لحفظ نوع ملفات المرفقات، مثال:

(image/jepg – applicaton/pdf)، أيضا العمود menu_order يستخدم لتحديد ترتيب الصفحات pages، كما يستخدم العمود post_parent في الترتيب الشجري للصفحات و من هو الأب و من هو الابن.

أيضاً يتم حفظ حالة المقال (منشور – مسودة) في نفس الجدول.

لأخذ صورة أوضح عن الجزء السابق طبق جمل Sql التالية على قاعدة وردبرس:

 

SELECT * FROM wp_posts WHERE post_type = ‘post’ LIMIT 1
SELECT * FROM wp_posts WHERE post_type = ‘page’ LIMIT 1
SELECT * FROM wp_posts WHERE post_type = ‘attachment’ LIMIT 1

 

ادخل على phpmyadmin (يمكن الحصول عليها على جهازك من أي سيرفر محلي +  اكتب – بعد تنصيب البرنامج -  http://Localhost في عنوان المتصفح)

image

بعد ذلك اختر اسم قاعدة بيانات الوردبرس – طبعا لازم تكون مثبت مدونة وردبرس أصلا على الجهاز – من العمود الأيمن. و بعد ذلك اختر SQL من الشريط العلوي و اكتب الأمر.

image

ثم اضغط تنفيذ ليكون شكل تنفيذ الأمر الأول كالتالي:

image

و جرب بنفسك الأمر الثاني و الثالث.

و الآن اليك بعض الأفكار التي يمكنك فعلها باستخدام wp-posts فقط:

- الحصول على بعض الإحصائيات عن عدد المقالات الكلي، و عدد كل نوع على حده، و عدد مقالات كل كاتب، و متوسط عدد المقالات المنشورة في اليوم الواحد .

- الحصول على قائمة بالمرفقات.

- الحصول على ألبوم صور من مرفقات محدد (بالنوع مثلا)  و اضافتها لمقالاتك.

 

الجدول الثاني wp-postmeta

 image

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

فتركيب هذا الجدول بسيط و مرن للغاية، يتكون من أربعة أعمدة –كما هو موجود في الصورة – :

meata_id: يتم توليده تلقائيا.

post_id: مرتبط مع جدول الأول، فهو foreign key للقيمة wp_posts.ID

meta_key: وصف المعلومة المضافة، مثل mood أو مكان كتابة المقال  الخ..

meta_value: المعلومة نفسها، مثلا: مزاجي عال العال، أو القاهرة كمان لكتابة المقال.

 

كما تستخدم وردبرس هذا الجدول في تسجيل معلومات أخري عن المرفقات التي لا تلائم جدول wp_posts مثل رابط المرفق على جهازك الشخصي أو معلومات المصغرات thumbnail الخ.

كما يستخدم هذا الجدول لحفظ معلومات الحقول المخصصة custom field – و التى يتم اضافتها من أسفل مربع كتابة المقال – كما هناك العديد من الإضافات التي تستخدم هذا الجدول لتخزين بياناتها، و لذلك إذا قررت عمل اضافة –أتمني من قلبي أن يفيد هذا المقال أحدهم ليترك و يقول بعمل واحده- تأكد من أن تختار اسم لا يتعارض مستقبلا مع أي اضافة اخري.

 

نكمل بقية الجداول ان شاء الله في مقال اخر.

 

المصادر:

1- مصدر الصورة الأولى: http://www.seoblog.co.za/wp-content/uploads/wordpress-logo.jpg

2- المقال مترجم بتصرف من : http://wpbits.wordpress.com/2007/08/08/a-look-inside-the-wordpress-database/  – و يرحب الكاتب بترجمة مقالاته و يضع رابط للمقالات المترجمة في المقال الأصلي، المقال قديم بعض الشيء لكنى رجعت لموقع وردبرس لإضافة أي جديد.