حتما شما هم نام WordPress را شنیده اید. وردپرس یک سیستم مدیریت محتوا (content managing system) است که در سال 2003 ارائه شد و با استفاده از آن می توانیم وب سایت یا وبلاگ خود را مدیریت کنیم. البته در ابتدای کار، وردپرس تنها یک سیستم وبلاگ نویسی بود که امکانات خوبی را برای وبلاگ نویسان فراهم می کرد اما با گذشت زمان تبدیل به یک سامانه ی مدیریت محتوا (متن باز) برای مدیریت سایت ها شد. وردپرس از زبان PHP و پایگاه داده ی MySQL استفاده می کند (نسخه ای برای کار با PostgreSQL نیز دارد)
اگر شما هم از وب سایت های وردپرسی استفاده می کنید حتما متوجه شده اید که پس از چند سال استفاده، پایگاه داده ی شما پر از کاراکترهای عجیب و غریب و داده هایی باشد که مورد نیاز شما نیست. در این مقاله شما را با کوئری های SQL ای آشنا خواهیم کرد که با استفاده از آن ها می توانید به پاکسازی پایگاه داده وردپرس بپردازید.
قبل از شروع کار باید به دو نکته توجه کنید:
_wp
(پیشوند جدول) را با پیشوند استفاده شده در سایت خود تغییر دهید تا کوئری ها کار کنند.همانطور که می دانید برای اجرای کوئری های پایگاه داده در وب سایت های وردپرسی 3 راه مختلف وجود دارد:
نکته: به دلایل امنیتی بهتر است در حد ممکن از پلاگین ها دوری کنید. پلاگین های وردپرس بسیار کاربردی و مفید هستند اما ممکن است ریسک و مشکلاتی نیز داشته باشند بنابراین اگر کار شما زحمت آنچنانی ندارد و میتوانید خودتان به راحتی کارتان را انجام دهید، آن را به پلاگین ها واگذار نکنید.
مشکلات 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 نیز همین بوده است.
اگر قبلا از HTTP استفاده می کردید اما اخیرا به HTTPS مهاجرت کرده اید باید لینک های hardcode شده ی وب سایت خود را تغییر دهید. لینک های hardcode شده یعنی لینک هایی که به صورت پویا و توسط سیستم تولید نشده اند بلکه خود شما آن ها را به صورت دستی تایپ کرده اید. اگر بخواهید تمام لینک های hardcoded را به شکل دستی تغییر دهید باید ساعت ها روی آن وقت بگذارید اما با استفاده از کوئری زیر می توانید در چند ثانیه تمامی لینک های خود را به روز رسانی کنید.
کوئری زیر را کپی کرده و قسمت yoursite.com
را با URL سایت خود تعویض کنید:
UPDATE wp_posts SET post_content = replace(post_content, 'http://yoursite.com', 'https://yoursite.com');
آیا با مفاهیم trackback و ping آشنایی دارید؟ در دنیای امروزی وب اکثر مردم آن ها را بی فایده می دانند. برای غیرفعال کردن trackback ها باید آن ها را به صورت دستی غیرفعال می کردیم که به نوبه ی خود ساعت های متعددی از وقت ما را تلف می کرد اما با استفاده از کوئری زیر می توانید به راحتی این کار را انجام دهید:
UPDATE wp_posts SET ping_status = 'closed';
Spam از موارد جدانشدنی دنیای وب است و اگر به کاربران خود قابلیت تعامل در قسمت کامنت ها را بدهید حتما مقدار زیادی Spam دریافت خواهید کرد. در سال های اخیر WordPress تلاش های بسیاری برای مدیریت اسپم کرده است که تا حد قابل قبولی جواب داده است. به طور مثال اگر کامنتی به عنوان اسپم شناخته شود، مستقیما در وب سایت شما نمایش داده نمی شود بلکه در یک queue (صف) قرار می گیرد تا خود شما آن را بازبینی و تایید کنید.
مشکل اینجاست که برخی اوقات قسمت queue را چک نمی کنیم و تعداد کامنت های آن بسیار زیاد می شود. خیلی از افراد اعتقاد دارند که بازبینی 400 کامنت کار بسیار سختی است و بهتر است همه را یکجا حذف کنیم. اگر شما هم دوست دارید کامنت های اسپم یکجا حذف شوند می توانید از کوئری زیر استفاده کنید:
DELETE FROM wp_comments WHERE comment_approved = 'spam';
این موارد از موارد کاربردی در ارتباط با پاکسازی پایگاه داده وردپرس بود. در قسمت بعدی کوئری های بیشتری را بررسی خواهیم کرد. امیدوارم این قسمت برایتان مفید بوده باشد.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.