مرکز آموزش میهن وب هاست

مرکز آموزش میهن وب هاست

نحوه کار با بانک اطلاعاتی وردپرس + معرفی 11 کوئری مفید SQL

پرینت این مقاله پرینت این مقاله

زمانی که وردپرس نصب می کنید، تمام محتوای سایت شما به همراه ساختار و اطلاعات کاربر، در پایگاه داده ذخیره می شود. این امر باعث می گردد سایت های وردپرسی، پویا (داینامیک) باشند.
کلیه اطلاعات استفاده شده در سایت شما به صورت جداول و سازمان یافته در بانک اطلاعاتی ذخیره می شوند.
با نصب وردپرس به صورت پیش فرض یک سری جداول در پایگاه داده ایجاد می گردند که در ادامه به توضیح این جداول پرداخته می شود.
wp_posts: تمام محتوای پست ها، صفحات، همچنین اطلاعات فهرست ها و پیوست های رسانه ای در این جدول نگهداری می شوند.
wp_postmeta: هر پست ممکن است توضیحات اضافی یا فیلد سفارشی داشته باشد که این توضیحات یا فیلدهای سفارشی به صورت داده های متا در این جدول ذخیره می شوند.
wp_comments: تمام نظرات کاربران در مورد پست ها، صفحات و ... در این جدول ذخیره می شوند.
wp_commentmeta: داده های متا برای نظرات در این جدول ذخیره می شوند.
wp_users:  نام کاربری، گذرواژه‌ها (رمزگذاری شده) و سایر اطلاعات کاربران در این جدول ذخیره می شوند.
wp_usermeta: داده های متا برای کاربران در این جدول ذخیره می شوند.
wp_options: این جدول مربوط به تنظیمات عمومی وردپرس می باشد.
wp_links: این جدول برای نگهداری لینک های وردپرس می باشد که البته در نسخه های جدید وردپرس استفاده خاصی نمی شود.
wp_terms: دسته ها و برچسب ها در این جدول ذخیره می شوند.
wp_termmeta: داده های متا برای دسته ها و برچسب ها نیز در این جدول ذخیره می شوند.
wp_term_relationships: ارتباط بین دسته ها و برچسب ها در این جدول ذخیره می شوند.
wp_term_taxonomy: این جدول وظیفه طبقه بندی داده ها از جمله نام، توضیحات و ... را بر عهده دارد.
داده های متا (meta data) چیست:  توضیح اضافی در مورد یک مطلب، کلید واژه و نویسنده را متا دیتا گویند. از متا دیتا اغلب برای افزایش سئو سایت استفاده می کنند.
جداول وردپرس شما ممکن است پیشوند دیگری نیز داشته باشد. "_wp" پیشوند پیش فرض می باشد اما اغلب به دلایل امنیتی تغییر داده می شود.
هر جدول در پایگاه داده دارای چندین فیلد است. به عنوان مثال wp_users دارای فیلد های زیر است:
  • ID
  • user_login
  • user_pass
  • user_nicename
  • user_email
  • user_url
  • user_registered
  • user_activation_key
  • user_status
  • display_name
با استفاده از SQL شما می توانید هر فیلد را در جداول پایگاه داده مشاهده، ویرایش، اضافه یا حذف کنید و در صورت لزوم جداول جدید ایجاد یا جداول قدیمی را حذف نمایید.

نحوه استفاده از دستورات SQL با بانک اطلاعاتی وردپرس
معروف ترین نرم افزار مدیریت پایگاه داده phpmyadmin می باشد که کاربران جهت مدیریت دیتابیس های خود از این نرم افزار استفاده می کنند. با ورود به phpmyadmin محیطی مشابه تصویر زیر مشاهده خواهید کرد.
محیط phpmyadmin جهت مدیریت دیتابیس
تصویر(1)
پس از ورود به این بخش، دیتابیس های شما در سمت چپ  قابل مشاهده می باشند. برای هر سایت وردپرسی یک دیتابیس خواهید داشت که جداول و اطلاعات مربوط به همان سایت را در خود ذخیره می کند.
جهت کار با هر دیتابیس، باید روی نام آن کلیک کنید تا جداول مربوط به آن دیتابیس را مشاهده نمایید.
مشاهده دیتابیس ها و جدول انها در phpmyadmin
تصویر(2)
1-  تب جست و جو در جدول (Search)
برخی مواقع ممکن است به دنبال یک عبارت در دیتابیس خود باشید و اطلاع ندارید این عبارت در کدام جدول یا در کدام فیلد از یک جدول ذخیره شده است. برای جست و جوی این عبارت، ابتدا روی گزینه "search"(شماره 1) موجود در منوی بالا کلیک نمایید. سپس در کادر اول، نام عبارتی که به دنبال آن هستید را وارد نمایید (شماره 2). در بخش بعد باید جدولی که آن عبارت در آن قرار دارد را انتخاب نمایید(شماره 3). اگر نمی دانید آن عبارت در کدام جدول قرار دارد باید تمامی جداول را انتخاب کنید تا جست و جو در تمامی جدول ها صورت گیرد. در نهایت برای شروع جست و جو روی "Go" (شماره 4) کلیک کنید.
 تب جست و جو در جدول (Search) در phpmyadmin
تصویر(3) 
2- بکاپ گیری و ریستور بکاپ (Export/Import)
با توجه به اینکه در اکثر کنترل پنل های هاستینگ امکان بکاپ گیری و ریستور دیتابیس وجود دارد و همچنین افزونه های زیادی در وردپرس برای این مورد منتشر شده است، برخی مواقع نیاز است به صورت دستی از طریق phpmyadmin اقدام به بکاپ گیری و ریستور نمایید.
 
3- اجرای دستورات SQL در phpmyadmin
در این بخش برخی از دستورات SQL توضیح داده می شوند.
توجه: قبل از اجرای دستورات SQL از دیتابیس خود بکاپ تهیه نمایید.
برای اجرای دستورات SQL از تب بالا روی گزینه "SQL" (شماره 1)  کلیک نمایید. دستور مدنظر را در کادر مشخص شده در تصویر زیر وارد کنید (شماره 2) و روی گزینه "Go" (شماره 3) کلیک نمایید.
 اجرای دستورات SQL در phpmyadmin
تصویر(4)

تغییر رمز پیشخوان وردپرس:

UPDATE wp_users SET user_pass = MD5( '[new_password]' ) WHERE user_login = '[username]';

دستور فوق در تیبل wp_users  فیلد user_pass را با رمز جدید (new_password) ست می کند. این دستور به شرطی با موفقیت اجرا می شود که در بخش username نام کاربری صحیح را وارد نمایید.

انتقال پست ها به اکانت نویسنده جدید:

در صورتی که چندین نویسنده برای سایت شما پست ایجاد می کنند ممکن است بخواهید برخی پست ها را از اکانت یک نویسنده به اکانت نویسنده دیگر منتقل کنید. برای انجام این مورد دستور زیر را وارد کنید:

UPDATE wp_posts SET post_author = (SELECT ID FROM wp_users WHERE user_login ='[new_author_login]') WHERE post_author = (SELECT ID FROM wp_users WHERE user_login ='[old_author_login]');

در دستور فوق ابتدا با استفاده از نام کاربری نویسنده قبلی (old_author_login) شماره ID آن نویسنده استخراج و سپس تمامی پست هایی که با آن ID ذخیره شده اند به ID نویسنده جدید منتقل می شوند. جهت انتقال صحیح نیاز است که در بخش new_author_login نام کاربری نویسنده جدید را وارد نمایید.

حذف دیدگاه های اسپم:

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

DELETE FROM wp_comments WHERE comment_approved = "spam";

در برخی مواقع ممکن است تعداد دیدگاه هایی که در انتظار تایید شما هستند بسیار زیاد باشند و می خواهید این دیدگاه ها را حذف کنید. با استفاده از دستور زیر می توانید این دیدگاه ها را حذف نمایید:

DELETE FROM wp_comments WHERE comment_approved = "0";

همچنین ممکن است از یک آدرس خاص اسپم های زیادی برایتان ارسال شود و بخواهید دیدگاه های ارسالی از آن آدرس را حذف کنید. برای انجام این مورد دستور زیر را اجرا کنید:

DELETE from wp_comments WHERE comment_author_url LIKE "%spamurl%" ;

توجه: به جای spamurl باید آدرس ارسال کننده اسپم را وارد نمایید. 

آپدیت لینک های سایت پس از تغییر دامنه اصلی:

زمانی که آدرس اصلی سایت خود را تغییر می دهید باید آدرس جدید را جایگزین آدرس قبلی در دیتابیس نمایید. برای انجام این مورد دستور زیر را وارد کنید:

UPDATE wp_posts SET post_content = REPLACE (post_content, '[old_domain]', '[new_domain]');

توجه: در دستور فوق به جای old_domain آدرس قبلی و به جای new_domain آدرس جدید سایت را باید وارد کنید.

تغییر یک پست به برگه :

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

UPDATE wp_posts SET post_type = 'page' WHERE post_type = 'post';

همچنین می توانید همین دستور را به صورت زیر وارد کنید تا یک برگه به یک پست تبدیل شود.

UPDATE wp_posts SET post_type = 'post' WHERE post_type = 'page';

تغییر نام کاربری:

شما از طریق پیشخوان وردپرس امکان تغییر نام کاربری را ندارید اما از طریق دستور SQL زیر به راحتی می توانید نام کاربری را تغییر دهید.

UPDATE wp_users SET user_login = 'newusername' WHERE user_login = 'oldusername';

توجه: در دستور فوق به جای newusername نام کاربری جدید و به جای oldusername نام کاربری قبلی را باید وارد کنید. 

حذف نسخه های مختلف یک پست:

زمانی که شما پست جدیدی را منتشر می کنید با هر بار ویرایش پست، یک نسخه پیش نویس در دیتابیس ذخیره می شود. برای حذف این پیش نویس ها در دیتابیس دستور زیر را وارد کنید:

DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision';

غیر فعال سازی ارسال نظر برای پست های قدیمی:

اسپمرها معمولا پست های قدیمی را هدف قرار می دهند. بهتر است پس از گذشت مدت مشخص از انتشار یک پست، ارسال نظر برای آن پست را غیر فعال نمایید. برای غیر فعال سازی این مورد می توانید از دستور زیر استفاده کنید:

UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2016-01-01' AND post_status = 'publish';

در دستور فوق، بخش نظرات تمام پست هایی که تاریخ انتشار آن ها قبل از 01-01-2019 باشد غیر فعال خواهد شد.

تغییر آدرس URL تصاویر:

در صورتی که بخواهید تصاویر سایت خود را به میزبان دیگر منتقل کنید یا به هر دلیلی آدرس دسترسی به تصاویر را تغییر دهید، باید آدرس های تصاویر در دیتابیس تغییر یابند. برای تغییر آدرس URL تصاویر، دستور زیر را وارد نمایید:

UPDATE wp_posts SET post_content = replace(post_content, 'Old URL', 'New URL');

توجه: در دستور فوق به جای Old URLآدرس URL قبلی و به جای New URL آدرس URL جدید را باید وارد کنید. 

 غیر فعال کردن تمامی افزونه ها:

برخی مواقع نصب یا آپدیت افزونه ها باعث اختلال در سایت می شوند و حتی امکان ورود به پیشخوان جهت غیر فعال سازی افزون ها را نخواهید داشت. در این زمان می توانید تمامی افزونه ها را غیر فعال نمایید تا امکان ورود به پیشخوان برایتان مهیا شود. برای انجام این کار دستور زیر را وارد کنید:

UPDATE wp_options SET option_value = '' WHERE option_name = 'active_plugins';

غیر فعال کردن بخش نظرات برای تمامی پست ها:

در صورتی که سایت شما به شدت تحت حملات اسپم در بخش نظرات می باشد باید این بخش را برای تمامی پست ها غیر فعال کنید. برای غیر فعال سازی این مورد دستور زیر را وارد نمایید:

UPDATE wp_posts SET comment_status = 'closed' where post_type ='post';

4.5/5 از 8 رای