کوئری های کاربردی برای پاکسازی پایگاه داده در وب سایت های وردپرسی (قسمت اول)

15 مرداد 1398
پاک کردن پایگاه داده در وردپرس

کوئری های مناسب برای پاکسازی پایگاه داده وردپرس

حتما شما هم نام WordPress را شنیده اید. وردپرس یک سیستم مدیریت محتوا (content managing system) است که در سال 2003 ارائه شد و با استفاده از آن می توانیم وب سایت یا وبلاگ خود را مدیریت کنیم. البته در ابتدای کار، وردپرس تنها یک سیستم وبلاگ نویسی بود که امکانات خوبی را برای وبلاگ نویسان فراهم می کرد اما با گذشت زمان تبدیل به یک سامانه ی مدیریت محتوا (متن باز) برای مدیریت سایت ها شد. وردپرس از زبان PHP و پایگاه داده ی MySQL استفاده می کند (نسخه ای برای کار با PostgreSQL نیز دارد)

اگر شما هم از وب سایت های وردپرسی استفاده می کنید حتما متوجه شده اید که پس از چند سال استفاده، پایگاه داده ی شما پر از کاراکترهای عجیب و غریب و داده هایی باشد که مورد نیاز شما نیست. در این مقاله شما را با کوئری های SQL ای آشنا خواهیم کرد که با استفاده از آن ها می توانید به پاکسازی پایگاه داده وردپرس بپردازید.

قبل از شروع کار باید به دو نکته توجه کنید:

  • قبل از اجرای این کوئری ها حتما باید از پایگاه داده ی خود یک نسخه ی بکاپ تهیه کنید.
  • باید _wp (پیشوند جدول) را با پیشوند استفاده شده در سایت خود تغییر دهید تا کوئری ها کار کنند.

همانطور که می دانید برای اجرای کوئری های پایگاه داده در وب سایت های وردپرسی 3 راه مختلف وجود دارد:

  • استفاده از SSH: اگر هاست (میزبان) وردپرس شما اتصالات SSH را نیز قبول می کند، می توانید مستقیما به سرور خود متصل شده و کوئری های مورد نظرتان را در محیط MySQL اجرا کنید.
  • استفاده از PHPMyAdmin: اکثر شرکت های خدمات میزبانی وردپرس با کنترل پنل cPanel و محیط PHPMyAdmin ارائه می شوند. همانطور که می دانید محیط PHPMyAdmin به شما اجازه می دهد که کوئری های SQL خود را به راحتی اجرا کنید.
  • استفاده از پلاگین ها: پلاگینی به نام Database My Admin وجود دارد که به شما اجازه می دهد از داشبورد مدیریتی سایت وردپرس خود، کوئری های مورد نظرتان را روی پایگاه داده اجرا کنید. البته اگر نمی خواهید کدها را به صورت دستی وارد کنید و فقط قصد پاکسازی و مرتب کردن پایگاه داده را دارید پلاگین Advanced Database Cleaner نیز انتخاب خوبی به نظر میرسد.

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

حذف کاراکترهای عجیب

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

UPDATE wp_posts SET post_content = REPLACE(post_content, '“', '“');
UPDATE wp_posts SET post_content = REPLACE(post_content, '”', '”');
UPDATE wp_posts SET post_content = REPLACE(post_content, '’', '’');
UPDATE wp_posts SET post_content = REPLACE(post_content, '‘', '‘');
UPDATE wp_posts SET post_content = REPLACE(post_content, '—', '–');
UPDATE wp_posts SET post_content = REPLACE(post_content, '–', '—');
UPDATE wp_posts SET post_content = REPLACE(post_content, '•', '-');
UPDATE wp_posts SET post_content = REPLACE(post_content, '…', '…');

UPDATE wp_comments SET comment_content = REPLACE(comment_content, '“', '“');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '”', '”');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '’', '’');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '‘', '‘');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '—', '–');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '–', '—');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '•', '-');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '…', '…');

ریست کردن رمز ادمین

امنیت WordPress یکی از مهم ترین جنبه های WordPress است. یکی از توصیه های ایمنی برای مدیران وب سایت های وردپرسی این است که هر از چند گاهی رمز عبور خود را تغییر دهید تا دچار حملات مختلف نشوید. از آنجایی که رمز عبور کاربران (چه ادمین و چه غیر آن) در پایگاه داده ذخیره می شود، می توانید به راحتی با دستور SQL آن ها را ریست کنید. برای این کار کوئری زیر را کپی کرده و در قسمت admin_username نام کاربری را بگذارید که رمز عبورش را تغییر می دهید و در قسمت new_password رمز عبور جدید را وارد کنید:

UPDATE `wp_users` SET `user_pass` = MD5( 'new_password' ) WHERE `wp_users`.`user_login` = "admin_username";

همانطور که می دانید باید رمزهای سایت وردپرسی خود را به صورت هش های MD5 ذخیره کنیم، دلیل استفاده از تابع ()MD5 در کوئری MySQL نیز همین بوده است.

به روزرسانی لینک ها به HTTPS

اگر قبلا از HTTP استفاده می کردید اما اخیرا به HTTPS مهاجرت کرده اید باید لینک های hardcode شده ی وب سایت خود را تغییر دهید. لینک های hardcode شده یعنی لینک هایی که به صورت پویا و توسط سیستم تولید نشده اند بلکه خود شما آن ها را به صورت دستی تایپ کرده اید. اگر بخواهید تمام لینک های hardcoded را به شکل دستی تغییر دهید باید ساعت ها روی آن وقت بگذارید اما با استفاده از کوئری زیر می توانید در چند ثانیه تمامی لینک های خود را به روز رسانی کنید.

کوئری زیر را کپی کرده و قسمت yoursite.com را با URL سایت خود تعویض کنید:

UPDATE wp_posts SET post_content = replace(post_content, 'http://yoursite.com', 'https://yoursite.com');

غیرفعال کردن Trackbacks در تمامی پست ها

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

UPDATE wp_posts SET ping_status = 'closed';

حذف یکجای کامنت های Spam

Spam از موارد جدانشدنی دنیای وب است و اگر به کاربران خود قابلیت تعامل در قسمت کامنت ها را بدهید حتما مقدار زیادی Spam دریافت خواهید کرد. در سال های اخیر WordPress تلاش های بسیاری برای مدیریت اسپم کرده است که تا حد قابل قبولی جواب داده است. به طور مثال اگر کامنتی به عنوان اسپم شناخته شود، مستقیما در وب سایت شما نمایش داده نمی شود بلکه در یک queue (صف) قرار می گیرد تا خود شما آن را بازبینی و تایید کنید.

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

DELETE FROM wp_comments WHERE comment_approved = 'spam';

این موارد از موارد کاربردی در ارتباط با پاکسازی پایگاه داده وردپرس بود. در قسمت بعدی کوئری های بیشتری را بررسی خواهیم کرد. امیدوارم این قسمت برایتان مفید بوده باشد.

نویسنده شوید

دیدگاه‌های شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.