مروری بر ساختار دیتابیس وردپرس

نوشته شده توسط ۱ هفته پیش
درجه سختی : پیشرفته مدت زمان یادگیری : متوسط

آگاهی از ساختار دیتابیس وردپرس و همچنین درک رابطه ها در دیتابیس، کمک زیادی به فهم ما از این سیستم میکنه. یک وردپرس تازه نصب شده و استاندارد دارای ۱۲ جدول پیش فرض هست و این جداول با هم در ارتباط هستند. ابتدا ما مروری بر این جدول ها خواهیم داشت و در نوشته بعدی رابطه بین این جدول ها رو بررسی می کنیم.

wordpress-core-tables

 

لیست جدول های پیش فرض وردپرس(با پیشوند wp_ در هنگام نصب) به این صورت است:

wp_posts
wp_postmeta
wp_comments
wp_commentmeta
wp_termmeta
wp_terms
wp_term_taxonomy
wp_term_relationships
wp_users
wp_usermeta
wp_options
wp_links

 

جدول wp_posts

این جدول دربرگیرنده اصلی ترین آیتم های وردپرس است. پست ها، برگه ها، پست تایپ ها، آیتم های فهرست ها، رسانه و…(که به اسم “نوشته” توضیح میدم) در این جدول ذخیره می شوند. ساختار این جدول بصورت زیر است:

ID – شماره منحصر به فرد هر نوشته
post_author – شماره منحصر به فرد نویسنده
post_date – تاریخ ایجاد
post_date_gmt – تاریخ ایجاد بصورت GMT
post_content – محتوای نوشته
post_title – عنوان نوشته
post_excerpt – توضیح کوتاه
post_status – وضعیت که می تواند منتشر شده، در حال بررسی، خصوصی و.. باشد
comment_status – وضعیت دیدگاه برای نوشته
ping_status – وضعیت پینگ برای نوشته
post_password – رمزعبور برای مشاهده
post_name – نامک نوشته
to_ping – آدرس هایی که بعد از برزورسانی نوشته باید به آنها پینگ دهد
pinged – آدرس هایی که به آنها پینگ نوشته شد
post_modified – تاریخ آخرین تغییر
post_modified_gmt – تاریخ آخرین تغییر بصورت GMT
post_content_filtered – محتوای فیلتر شده که بیشتر برای استفاده در افزونه هاست
post_parent – رابطه بین این نوشته و دیگر داده ها(برای مثال عکس یک نوشته)
guid – یک نشانه منحصر به فرد برای مشخص کردن آدرس
menu_order – ردیف قرارگیری این نوشته
post_type – نوع این نوشته(پست تایپ)
post_mime_type – نوع MIME که برای رسانه استفاده میشه
comment_count – تعداد دیدگاه، پینگ و ترک بک ها

 

جدول wp_postmeta

این جدولی است که مقادیر زمینه های دلخواه پست، برگه و پست تایپ ها در آن ذخیره می شود.

meta_id – شماره منحصر به فرد هر زمینه
post_id – شماره منحصر به فرد نوشته
meta_key – نام زمبنه دلخواه
meta_value – مقدار زمبنه دلخواه

 

جدول wp_comments

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

comment_ID – شماره منحصر به فرد هر دیدگاه
comment_post_ID – شماره منحصر به فرد نوشته ای که دیدگاه به آن ارسال شد
comment_author – نام نویسنده دیدگاه
comment_author_email – ایمیل نویسنده دیدگاه
comment_author_url – آدرس وب سایت نویسنده دیدگاه
comment_author_IP – شماره IP نویسنده دیدگاه
comment_date – تاریخ ارسال دیدگاه
comment_date_gmt – تاریخ ارسال دیدگاه بصورت GMT
comment_content – محتوای دیدگاه
comment_karma – این مورد در خود وردپرس استفاده ای نمی شود
comment_approved – تایید شدن یا نشدن دیدگاه
comment_agent – نمایش مشخصاتی مانند مرورگر، سیستم عامل و… ارسال کننده دیدگاه
comment_type – نوع دیدگاه، اینکه دیدگاه، پینگ یا ترک بک باشد
comment_parent – مشخص کننده اینکه دیدگاه والد است یا پاسخ به دیدگاه دیگر
user_id – اگر نویسنده دیدگاه کاربر سایت باشد، منحصر به فرد کاربر ذخیره می شود

 

جدول wp_commentmeta

این جدولی است که مقادیر زمینه های دیدگاه ها در آن ذخیره می شود. شما می توانید همانند پست ها، برای دیدگاه ها نیز زمینه دلخواه اضافه کنید.

meta_id – شماره منحصر به فرد هر سطر
comment_id – شماه شماره منحصر به فرد دیدگاه این زمینه
meta_key –نام زمینه
meta_value – مقدار زمینه

 

جدول wp_termmeta

این جدولی است که مقادیر زمینه های ترم ها(terms) در آن ذخیره می شود.

meta_id – شماره منحصر به فرد هر سطر
term_id – شناسه منحصر به فرد پست مرتبط با داده
meta_key – کلید شناسایی برای داده
meta_value – مقدار برای داده

 

جدول wp_terms

در این جدول مقادیر ترم ها(terms) در آن ذخیره می شوند.

term_id – شماره منحصر به فرد هر ترم
name – نام نمایشی هر ترم
slug – نامک هر ترم(جهت نمایش در آدرس)
term_group – برای استفاده در پوسته ها یا افزونه ها جهت دسته بندی ترم ها برای استفاده از نام مستعار.

 

جدول wp_term_taxonomy

جدولی جهت ذخیره طبقه بندی(تاکسونومی)ها و مقادیر آنها.

term_taxonomy_id – شماره منحصر به فرد هر سطر
term_id – شناسه ترم مرتبط که به جدول wp_terms ارجاع داده می شود
taxonomy – نامک طبقه بندی که هم در طبقه بندی های پیش فرض و هم در طبقه بندی هایی که در سیستم ثبت می شوند استفاده می شود
description – توضیحات ترم در این طبقه بندی
parent – شناسه ترم والد که برای سلسله مراتب طبقه بندی ها استفاده می شود. مانند دسته بندی ها
count – تعداد پست ها و موضوعات(مانند پست و برگه  ها) اختصاص داده شده به ترم برای این طبقه بندی

 

جدول wp_term_relationships

در این جدول روابط ترم و تاکسونومی ها با پست ها و موضوعات مشخص می شود

object_id – شناسه پست یا موضوع که به جدول wp_posts ارجاع داده می شود
term_taxonomy_id – شناسه ترم یا طبقه که به جدول wp_term_taxonomy ارجاع داده می شود
term_order – جهت مشخص کردن ترتیب ترم برای یک شی(استفاده خاصی نمی شود)

 

جدول wp_users

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

ID – شناسه منحصر به فرد برای کاربر
user_login – نام کاربر منحصر به فرد برای کاربر
user_pass – پسورد هش شده کاربر
user_nicename – نام نمایشی کاربر
user_email – آدرس ایمیل کاربر
user_url – آدرس سایت کاربر
user_registered – ساعت و تاریخ ثبت نام کاربر
user_activation_key – کلید فعالسازی برای بازیابی پسورد کاربر
user_status – در نسخه های قبل وردپرس ۳.۰ برای مشخص کردن یک کاربر به عنوان اسپمر استفاده می شد
display_name – نام نمایشی عمومی در سایت است که می تواند نام کاربر، نام نمایشی یا نام و نام خانوادگی مشخص شده در متای کاربر باشد

 

جدول wp_usermeta

جدول متای کاربری که زمینه های کاربر را می توان در آن ذخیره کرد

umeta_id – شناسه منحصر به فرد هر ردیف
user_id – شناسه کاربر که به جدول wp_users ارجاع داده می شود
meta_key – کلید شناسایی داده
meta_value – مقدار برای داده

 

جدول wp_options

دراین جدول مقادیر داده های پیش فرض و تنظیمات اصلی وردپرس و همچنین تنظیمات اضافه قابل استفاده در پوسته یا افزونه ذخیره می شود

option_id – شناسه منحصر به فرد هر ردیف
option_name – کلید شناسایی داده
option_value – مقدار برای داده که بعضا بصورت سریال شده نیز ذخیره می شود
autoload – بررسی میکند که تنظیمات بصورت خودکار توسط تابع wp_load_alloptions اجرا شده باشد

 

جدول wp_links

این جدول عملا در نسخه های جدید وردپرس استفاده خاصی نمی شود و برای نگهداری مقادیر بخش لینک های وردپرس استفاده می شود

link_id – شناسه منحصر به فرد هر ردیف
link_url – آدرس لینک
link_name – نام لینک
link_image – آدرس عکس انتخاب شده برای لینک
link_target – انتخاب نوع باز شدن لینک مانند در صفحه جاری یا صفحه جدید یا…
link_description – توضیحات لینک
link_visible – عمومی یا خصوصی بودن لینک
link_owner – شناسه کاربر ایجاد کننده لینک که به جدول wp_users ارجاع داده می شود
link_rating – مقدار رتبه لینک که بین ۰ تا ۱۰ است
link_updated – ساعت و تاریخ ایجاد لینک
link_rel – ارتباط لینک
link_notes – توضیحات اضافه برای لینک
link_rss – آدرس خوراک لینک

 

خب، ما مروری کلی روی جداول وردپرس انجام دادیم. برای درک بهتر این توضیحات و فهم راحتتر روابط این جداول، بهترین راه مطالعه بیشتر و تمرین های مکرر با دیتابیس وردپرس هست. اگر در مورد هر بخشی برای شما سوال ایجاد شده میتونید در زیر همین پست بپرسید، همچنین خوشحال میشیم نظرات شما رو هم بدونیم.

مرتضی گرانسایه

 دیدگاه های ارسال شده برای این مطلب
  1. اسماعیل ابراهیم گفت:

    سلام
    مرتضی جان خسته نباشی واقعاً
    از زمانی که برای تهیه این مقاله گذاشتی متشکرم
    یه پیشنهاد – من فکر می کنم دوستانی که در اول راه هستن تنها بخشی که ممکنه یکم براشون گنگ باشه بخش تاکسونومی ها و ترم ها و رابطه بین اونها باشه – اگر یکم بیشتر توی این پست یا یه پست جدا توضیحش بدی خیلی خوبه
    موفق و پیروز باشی

    • مرتضی گرانسایه گفت:

      سلام
      حتما ما توی پست ها و آموزشهای بعدی در مورد ترم و تاکسونومی ها توضیحات بیشتری رو ارائه می کنیم هم اینکه مثال های عملی میزنیم تا درکش ساده تر بشه.

      ممنون

  2. فرهاد گفت:

    اطلاعات مفیدی بود ممنون از آقای گرانسایه بابت تهیه این مطلب ارزشمند.

    چرا جدول wp_links رو کلا حذف نمی‌کنند؟ الان دیگه فکر کنم حتی وب سایت‌های قدیمی هم بیخیال بخش پیوند‌های وبلاگ شدند!

    در مورد کار با دیتابیس وردپرس بصورت cli هم مطالبی تهیه کنید هم عالی میشه.

    • مرتضی گرانسایه گفت:

      سلام
      خواهش میکنم
      چون فکرشون به این صورت هست که شاید یکسری از سایتها از قبل لینک ها رو داشتن و هنوز دارن توی سایتشون نمایش میدن. و اینکه این بخش لینک ها هنوز هم با زدن یک هوک قابل فعال شدن هست. یعنی کامل از سیستم حذف نشده.
      در مورد cli هم حتما پست میزاریم.

      موفق باشید