آشنایی با فایل ها و جداول پایگاه داده وردپرس
برای بسیاری از افرادی که به تازگی با وردپرس آشنا شده اند، ممکن است، فایل ها و جداول پایگاه داده وردپرس برای آن ها ناشناخته باشند.
در این مقاله به معرفی فایل های اصلی هسته وردپرس می پردازیم، سپس به معرفی جداول پایگاه داده وردپرس خواهیم پرداخت.
داشتن حداقل دانش محدود از نحوه عملکرد هسته وردپرس برای کاربران مبتدی توصیه می شود، این مقاله می تواند شروع خوبی در این زمینه باشد.
نحوه دسترسی به فایل های وردپرس
تمام وب سایت های وردپرسی دارای ساختار فایل و پوشه بندی مشابهی هستند (گاهی اوقات، نام برخی از فایل ها متفاوت است، اما در 95 درصد مواقع آنها یکسان هستند)، و شما می توانید با استفاده از فایل منیجر به آن ها دسترسی پیدا کنید.
استفاده از مدیریت فایل از داشبورد سی پنل
در بسیاری از مواقع می توانید از داخل داشبورد هاست تان به سیپنل دسترسی داشته باشید.
در بیشتر مواقع هم نام کاربری و رمز عبور دسترسی به سیپنل هنگام خرید هاست، به ایمیل تان ارسال می شود که از طریق یکی از این دو روش می توانید به سیپنل دسترسی پیدا کنید.
پس از ورود به سیپنل به فایل منیجر هاست خود بروید، پوشه ای به نام public_html وجود دارد، که شامل چند پوشه به نام های زیر است:
wp-admin wp-content wp-includes
که در ادامه به معرفی هریک از آن ها می پردازیم.
wp-admin
این پوشه حاوی فایل های مختلفی است که وردپرس توسط آن ها قسمت داشبورد را مدیریت می کند.
در این پوشه فایل هایی به نام های زیر وجود دارد.
- php
- admin-header.php
- php
- admin-functions.php
- setup-config.php
شاید بتوانید از نام های این فایل ها عملکرد آن ها را حدس بزنید، اما یک کاربر مبتدی نباید آن ها را دستکاری کند، زیرا یک اشتباه کوچک باعث خراب شدن سایت شما شود.
wp-content
این پوشه تمام فایل های آپلود شده توسط کاربر را ذخیره می کند و به سه زیر پوشه زیر تقسیم می شوند.
- themes
- plugin
- uploads
اگر بیشتر از این سه پوشه درون wp-content وجود دارد، نگران آن ها نباشید، این یک قانون غیر قابل تبدیل نیست!
در ادامه با ما همراه باشید تا به بررسی هریک از آن ها بپردازیم.
themes
در این پوشه به ازای هر قالبی که نصب کرده اید، یک پوشه به همان نام نیز در اینجا قرار دارد، به شما توصیه می کنم قالبی را از این پوشه ها تغییر ندهید یا سفارشی سازی نکنید، زیرا بعد از هر بروزرسانی این تغییرات از بین می رود.
plugins
مانند پوشه قبل،فهمیدن اینکه در این پوشه چه فایل ها و زیر پوشه هایی وجود دارد برای هر کاربری آسان است، هر افزونه ای که در وردپرس نصب می کنید، پوشه و فایل هایش در این جا قرار می گیرد.
Uploads
در طول زمانی که کاربر از وردپرس استفاده می کند، تصاویر، ویدیو ها و سایر فایل هایی را درون وردپرس آپلود می کند، همه این فایل ها درون این پوشه ذخیره می شوند.
wp-includes
این پوشه ای است که حاوی فایل های مورد نیاز برای عملیات اصلی وردپرس است. اینجا جایی است که بیشتر فایل های مورد نیاز برای اجرای وب سایت شما ذخیره می شود. از ایجاد هرگونه تغییر در این فایل ها خودداری کنید.
جدا از این پوشه ها و زیر پوشه ها، مجموعه ای از فایل های php وجود دارد که نقش مهمی در اجرای یک وب سایت وردپرس دارند. در ادامه به سراغ آنها خواهیم رفت!
فایل htaccess
این فایل مسئولیت امنیت و عملکرد وب سایت شما را بر عهده دارد، احتمال زیادی وجود دارد که هنگام تغییر پیوند های یکتای وردپرس تان در مورد آن فایل چیزی بشنوید.
شما با قرار دادن یک سری تکه کد درون این فایل خواهید توانست کار های زیادی را در وبسایت تان انجام دهید، نگران نباشید تمام کاری که باید انجام بدهید، یک کپی پیست ساده است.
شاید شما در پوشه روت سایت تان نمی توانید این فایل را پیدا کنید، این به سه دلیل ممکن است.
اول اینکه فایل htaccess فقط در سرور هایی که از وب سرویس آپاچی استفاده می کنند وجود دارد، برای مطمعن شدن از این موضوع باید با پشتیبانی هاست تان تماس بگیرید تا بفهمید هاست شما از کدام وب سرور استفاده می کند.
اکثر ارائه دهندگان هاست های اشتراکی از وب سرویس آپاچی استفاده می کنند پس جای نگرانی نیست، شما می توانید فایل htaccess را پیدا کنید.
دومین دلیل هم این است که شما نمی توانید فایل های مخفی را ببینید، به دلیل کار هایی که این فایل می تواند انجام دهد، به صورت پیش فرض این فایل مخفی است
برای مشاهده فایل های مخفی می توانید توی فایل منیجر هاست سیپنل روی علامت چرخ دنده سمت راست بالا کلیک کنید و تیک گزینه show hidden files را بزنید.
دلیل سوم هم این است که شما اصلا فایل htaccess را ندارید، اگر از تنظیمات وردپرس پیوند های ثابت را تغییر نداده باشید، ممکن است این فایل برای شما ساخته نشده باشد.
برای ساختن این فایل کافیست به تنظیمات وردپرس و قسمت پیوند های یکتا بروید و بدون تغییر در تنظیمات آن روی ذخیره کلیک کنید تا این فایل برای تان ساخته شود.
هنگامی که موفق به پیدا کردن فایل htaccess شدید می توانید کد هایی به آن اضافه کنید که می تواند امنیت و عملکرد شما را به صورت قابل توجهی افزایش دهد.
اما توجه داشته باشید که قبل از هر گونه تغییر در این فایل یک بکاپ از آن تهیه کنید، در این صورت اگر سایت تان با مشکلی روبرو شد می توانید به سادگی فایل htaccess را بازیابی کنید.
توجه داشته باشید که این ترفند های کوچک می تواند از مشکلات بزرگ در سایت تان جلوگیری کنید، پس بهتر است آن ها را نادیده نگیرید!
محافظت از فایل htaccess. در برابر دسترسی غیرمجاز
در پاراگراف قبلی به این اشاره کردیم که فایل htaccess یک فایل مهم در وبسایت است، بنابراین منطقی است که نحوه محافظت از آن در برابر دسترسی غیر مجاز را بدانیم.
این مرحله امنیت وردپرس شما را نیز تقویت می کند و شامل پنج خط کد می شود!
کد زیر را کپی کنید، آن را در فایل htaccess خود قرار دهید و آن را مجددا در هاست تان ذخیره کنید. از این پس امنیت بیشتری خواهید داشت!
<files ~ "^.*\.([Hh][Tt][Aa])"> order allow,deny deny from all satisfy all </files>
ممنوع کردن یک آدرس IPاز طریق فایل htaccess
بسیاری از افزونه های امنیتی اطلاعاتی در مورد آدرس های IP ارائه می دهند که سعی می کنند به داشبورد شما وارد شوند.
به احتمال زیاد، کاربرانی که در پشت این آدرس های IP قرار دارند، سعی در هک کردن وب سایت شما داشتند.
اگر خطوط کد زیر را در فایل htaccess. وارد کنید، آدرس های IP مشکوک قادر به دسترسی به وبسایت شما دیگر نیستند.
<Limit GET POST> order allow,deny deny from xxx.xxx.xx.x allow from all </Limit>
xxx.xxx.xx.x در واقع همان آیپی است که می خواهید دسترسی آن را مسدود کنید.
محدود کردن دسترسی به پوشه wp-includes از طریق فایل htaccess
در پوشه wp-includes فایل هایی وجود دارد که نباید اصلاح یا بروز یا حذف شود، به عبارت دیگر توصیه می شود این پوشه را از دسترسی غیر مجاز دیگران ایمن نگه دارید.
با افزودن کد زیر به فایل htaccess می توانید دسترسی به پوشه wp-includes محدود کنید.
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L] </IfModule>
غیرفعال کردن مرور دایرکتوری
به طور پیش فرض، مرور دایرکتوری فعال است. این یک نقص امنیتی نیست، اما می تواند به طور غیرمستقیم به هکر کمک کند تا راهنمایی هایی در مورد نحوه هک کردن وب سایت شما بدست آورد.
غیرفعال کردن مرور دایرکتوری بسیار ساده است. فقط این خط کد را در فایل htaccess. قرار دهید:
Options All –Indexes
محافظت از فایل wp -config.php
فایل wp-config.php یکی دیگر از فایل های مهم برای وب سایت وردپرسی شما است که باید از آن محافظت شود.
توصیه می شود از دسترسی به آن جلوگیری کنید. با اضافه کردن کد زیر، به فایل htaccess می توانید این کار را انجام دهید.
<files wp-config.php> order allow,deny deny from all </files>
فایل wp-config.php
فایل wp-config.php وظیفه ایجاد ارتباط بین پایگاه داده وردپرس و فایل های وردپرس را بر عهده دارد.
این فایل نقش اصلی در راه اندازی یک وبسایت را بازی می کند.
با نصب وردپرس از طریق cPanel به صورت پیش فرض یک فایل wp-config.php ایجاد می کند.
اگر نصب وردپرس را به صورت دستی انجام بدهید، باید فایل wp-config.php را ویرایش کنید.
در آخرین وضعیت، باید فایل wp-config-sample.php را در پوشه اصلی جستجو کنید و نام آن را به wp-config.php تغییر دهید.
شما باید برخی از داده ها را به شرح زیر به فایل اضافه کنید:
نام پایگاه داده
نام کاربری مورد استفاده برای دسترسی به پایگاه داده
رمز عبور استفاده شده برای دسترسی به پایگاه داده
نام میزبان سرور پایگاه داده
سفارشی کردن فایل wp-config.php یک کار خطرناک است. هر اشتباهی مترادف با آسیب رساندن به وب سایت شما است.
برای درک بهتر نقش این فایل می توانید آن را با قلب انسان مقایسه کنید. حتی اگر جراحی قلب برای یک پزشک کار آسانی باشد، او برای جلوگیری از اتفاقات غیره منتظره کار های پیشگیرانه ای را انجام می دهد.
پس باید شما هم همان استراتژی را دنبال کنید، باید مراقب این فایل باشید!
اگر یک کاربر مبتدی هستید، توصیه نمیکنم در wp-config.php تغییراتی ایجاد کنید، مگر اینکه از کاری که انجام میدهید مطمئن باشید.
خب فکر کنم دانستن مطالب بالا برای شروع شما کافی باشد، تا اینجا مقاله قصد داشتم ساختار پوشه ها و فایل های مهم وردپرس را به شما نشان دهم.
در ادامه به معرفی پایگاه داده وردپرس می پردازیم، پس با ما همراه باشید.
وردپرس و اکثر افزونه ها تنظیمات خود را در پایگاه داده سرور ذخیره می کنند. داده های ذخیره شده در آنجا در جداولی مرتب سازی شده اند.
این جداول شبیه به یک صفحه اکسل با یک ردیف سرصفحه و مقادیری در زیرردیف ها است.
این ادامه توضیح خواهم داد که کدام جدول محتوای یک وب سایت وردپرسی را مدیریت می کند.
پایگاه داده بخشی ضروری از یک سایت وردپرسی است. وردپرس از سیستم مدیریت پایگاه داده MySQL نسخه 5.6 یا بالاتر استفاده می کند.
همچنین می تواند از MariaDB نسخه 10.1 یا بالاتر استفاده کند. MariaDB یک کپی کامل با مجوز کامل GPL از MySQL است که به عنوان جایگزینی برای MySQL عمل می کند.
داشتن درکی از ساختار جداول پایگاه داده وردپرس می تواند به کاربران کمک کند که هنگام همگام سازی یا انتقال داده از یک سایت به سایت دیگر بدانند که کدام جداول را حذف کند یا از کدام یک مراقبت کنند.
وردپرس و جداول پایگاه داده به طور خودکار ارتباط برقرار می کنند و کاربران نهایی نیازی به دانستن ساختار آن ندارند.
با این حال، برای کسانی که یک افزونه برای وردپرس می نویسند، ممکن است داشتن اطلاعات بیشتر برای شان مفید باشد. این ممکن است شامل نحوه ذخیره داده ها و روابط وردپرس باشد.
یک راه متداول برای دسترسی به پایگاه داده وردپرس استفاده از ابزار مدیریت پایگاه داده به نام phpMyAdmin است.
اغلب به صورت پیش فرض این ابزار روی هاست ها نصب شده است.
به این نکته توجه داشته باشید که دسترسی به پایگاه داده و ایجاد تغییراتی در آن می تواند وبسایت شما را خراب کند، بنابراین قبل از انجام هر کاری بهتر است از یک نسخه پشتیبان تهیه کنید.
یک وب سایت جدید وردپرسی دارای 12 جدول در پایگاه داده است، آن ها عبارت اند از:
- wp_posts
- wp_postmeta
- wp_options
- wp_users
- wp_usermeta
- wp_term_taxonomy
- wp_terms
- wp_term_relationships
- wp_links
- wp_comments
- wp_commentmeta
- wp_termmeta
جداول اغلب با یکدیگر مرتبط هستند زیرا ممکن است قطعات مختلف داده به هم مرتبط باشند.
به عنوان مثال، یک پست وبلاگ ممکن است به دسته ها و برچسب ها پیوند داده شود. بنابراین، جدول ذخیرهسازی پستهای وبلاگ به دستهها و برچسبهای ذخیرهسازی جدول مربوط میشود.
جدول wp_post
جدول wp_post تمام داده های مربوط به محتوای یک وب سایت وردپرس را درون خود ذخیره می کند. این شامل مواردی مانند پستها، برگه ها و ویرایش های آن ها میشود.
همچنین موارد فهرست، فایلهای رسانه، تصاویر و پیوستها در اینجا ذخیره میشوند. داده های محتوای استفاده شده توسط افزونه ها نیز در این جدول قرار دارند.
Post_type یک ستون جدول در wp_post است که داده های فوق را دسته بندی می کند.
این به کاربران اجازه می دهد تا انواع خاصی از داده ها را با استفاده از کوئری درخواست کنند.
این باعث می شود post_type مهمترین ستون در جدول wp_post باشد.
ستون post_type نوع هر سطر را نشان می دهد، یک پست، برگه، پیوست، فهرست یا نوع دیگری. این تنوع محتوا به جدول ماهیت انعطاف پذیری می بخشد.
جدول wp_postmeta
هر پست حاوی مجموعه ای از داده ها به نام متادیتا است. ذخیره این اطلاعات در جدول wp_postmeta انجام می شود.
برخی از افزونه ها نیز ممکن است داده های خود را به این جدول اضافه کنند.
wp_postmetaیک ریلیشن به جدول wp_post است. این یک جدول عمودی است که داده ها را با استفاده از جفت های کلید/مقدار ذخیره می کند.
این تکنیکی است که بسیاری از جداول وردپرس از آن استفاده می کنند. هسته وردپرس، افزونه ها و قالب ها را قادر می سازد تا داده های نامحدودی را ذخیره کنند.
جدول wp_options
wp_options یکی از مهم ترین جداول وردپرس است. این جدول تمام گزینه های تنظیم شده در بخش مدیریت > تنظیمات را ذخیره می کند.
تنظیمات ذخیره شده در اینجا شامل URL، عنوان، افزونه های نصب شده و موارد دیگر است.
اکثر افزونه ها تنظیمات خود را در اینجا نیز ذخیره می کنند.
همچنین در این جدول تمامی تنظیمات داشبورد وردپرس ذخیره می شود. برخلاف سایر جداول، جدول wp_options به هیچ جدول دیگری مرتبط نمی شود.
جدول wp_users
این جدول لیستی از تمام کاربران ثبت نام شده در سایت وردپرسی شما را به همراه اطلاعات اولیه آنها را درون خود نگهداری می کند.
این موارد شامل تاریخچه ورود ها، رمز عبور (رمزگذاری شده)، آدرس ایمیل، زمان ثبت نام، نام نمایشی، وضعیت، و کلید فعال سازی (در صورت لزوم) می شود.
جدول wp_usermeta
این جدول از داده های اضافی در مورد سایر داده ها است. همانطور که اشاره شد، جدول wp_user اطلاعات اولیه کاربران سایت را ذخیره می کند.
جدول wp_usermeta داده های اضافی را در جدول wp_user ذخیره نمی کند. این شامل مواردی مثل: نام خانوادگی کاربران است.
جدول wp_terms
جدول wp_terms دستهها را برای پستها و پیوندها و برچسبها را برای پستها ذخیره میکند.
terms اقلامی از سیستم هستند که برای طبقه بندی اشیا استفاده می شوند. به عنوان مثال، طبقه بندی پست ها و پست های سفارشی به روش های مختلف امکان پذیر است.
هنگام ایجاد یک پست، گزینه ای برای اضافه کردن دسته و برچسب ها به آن وجود دارد. اینها نمونه هایی از طبقه بندی هستند.
جدول wp_term حاوی ستونی به نام Slug است Slug یک برچسب از یک پست خاص است.
در وردپرس می توانید پست ها، صفحات و لینک ها را با استفاده از برچسب ها به هم متصل کنید.
جدول wp_term_taxonomy
همانطور که از نام آن مشخص است، این جدول طبقه بندی ورودی های جدول wp_term را توصیف می کند. طبقه بندی می تواند یک دسته، پیوند یا برچسب باشد.
ساختار این جدول به شما این امکان را می دهد که از یک اصطلاح برای طبقه بندی های مختلف استفاده کنید.
به عنوان مثال، اصطلاح “پایگاه داده” می تواند یک دسته برای نوشته ها و همچنین یک طبقه بندی سفارشی برای یک نوع نوشته سفارشی باشد.
بنابراین عبارت “پایگاه داده” یک بار در جدول wp_terms، اما دو بار (دو ردیف) در جدول wp_term_taxonomy وجود خواهد داشت.
جدول wp_term_relationships
اینجا جایی است که وردپرس داده های حیاتی را در مورد استفاده از طبقه بندی ها درون آن ذخیره می کند.
جدول wp_post داده های پست را ذخیره می کند. جدول wp_term_relationship دسته و برچسب های مربوطه را ثبت می کند.
این یک رابطه بین یک پست (شیء) در جدول wp_post و یک اصطلاح از یک طبقه بندی خاص در جدول wp_term_taxonomy تعریف می کند.
به عنوان مثال، این پست با یک دسته و چندین برچسب مرتبط است. جدول wp_term_relationship مسئول حفظ آن ارتباط ها است.
جدول wp_links
جدول wp_links فضای ذخیرهسازی تمام دادههای مربوط به وبلاگها و پیوندها است.
جدول wp_comments
Wp_comments تمام نظرات در نوشته ها یا برگه ها وردپرس شما را ذخیره می کند. همچنین اطلاعاتی در مورد نویسنده نظر را نیز ذخیره می کند.
این اطلاعات ممکن است شامل نام، آدرس ایمیل، و نوع نظر (ساده، بازتاب، دنبالک) باشد.
جدول wp_commentmeta
Wp_commentmeta حاوی اطلاعات اضافی درباره هر نظر است. فراداده های نظرات شامل:
meta_id یک شماره منحصر به فرد اختصاص داده شده به هر ردیف
comment_id شناسه نوشته ای که داده ها به آن مربوط می شوند – ارجاع به جدول wp_comments
meta_value قطعه داده
meta_key یک کلید شناسایی برای قطعه داده
جدول wp_termmeta
این جدول جدیدی است که در وردپرس 4.4 معرفی شده است. اطلاعات اضافی در مورد شرایط داده هایی که در جدول wp_terms ذخیره نشده اند را ذخیره می کند.
دسترسی به عبارت متا با استفاده از توابع زیر امکان پذیر است:
add_term_meta، get_term_meta، update_term_meta و delete_term_meta.
توسعهدهندگان از متای term برای نگهداری دادههای سفارشیبه روشی استاندارد استفاده میکنند. به عنوان مثال، برای پیوست کردن یک تصویر در یک دسته بندی نوشته برای نمایش در صفحه آرشیو دسته ها
واضح است که توسعه دهندگان وردپرس یا افزونه ها باید بدانند که پایگاه داده چگونه کار می کند.
اما کاربران وردپرس نیز باید اطلاعات اولیه ای از پایگاه داده داشته باشند، زیرا این بخش مهمی از هر وب سایت است.
پایگاه داده با هر قطعه اطلاعات جدیدی که به وب سایت اضافه می شود، گسترش می یابد. برای پشتیبانی از عملکردهای خاص وب سایت، لازم است جداول جدید به پایگاه داده اضافه شود.
به عنوان مثال، هنگام نصب یک افزونه جدید، آن افزونه جدول پایگاه داده وردپرس خود را ایجاد می کند. با این حال، همه افزونه ها این کار را انجام نمی دهند، بسیاری از افزونه ها از جداول از قبل موجود استفاده می کنند.
هدف این قسمت از مقاله این است که به وضوح ساختار پایگاه داده را ترسیم کند. همچنین بینشی در مورد نحوه عملکرد وردپرس در پس زمینه به شما بدهد.
درست است که تقریباً برای همه چیز افزونه هایی وجود دارد. اما برای نصب آنها عجله نکنید زیرا ممکن است جایگزین ساده تر و سریع تری در دسترس باشد.
دیدگاهتان را بنویسید