پرش به محتوا
ابزارها

SQL جست‌وجو و جایگزینی

نشانی سایت خود را تغییر دهید، بی‌آنکه داده‌های سریالایز‌شده خراب شوند

در مرورگر شما اجرا می‌شود. هیچ‌چیز آپلود نمی‌شود.

The change

Read this before you run anything

WordPress stores many options as PHP-serialized strings, and a serialized string records its own byte length — s:19:"http://old-site.com". A plain SQL replace changes the text but not the length, so PHP can no longer unserialize the row. It does not error. The value just silently becomes empty.

What you lose: widget configuration, theme mods, and most plugin settings. Usually you do not notice until days later, and by then the backup you would have restored is gone too.

This is why the queries below deliberately do not touch wp_options.

What are you moving?
search-replace.sql

Take a database backup first. Not 'consider taking one' — take one. There is no undo for an UPDATE.

درباره SQL جست‌وجو و جایگزینی

یک جست‌وجو و جایگزینی سادهٔ SQL روی پایگاه‌دادهٔ وردپرس، هر گزینهٔ سریالایز‌شده‌ای را که لمس کند خراب می‌کند، چون طول رشتهٔ ذخیره‌شده دیگر با مقدار جدید هم‌خوان نیست. این ابزار کوئری‌های امن را می‌سازد و دقیقاً توضیح می‌دهد کدام‌ها امن نیستند.

FAQ

پرسش‌ها

آیا می‌توانم آدرس سایت وردپرس خود را با یک جست‌وجو و جایگزینی SQL تغییر دهم؟

نه به‌صورت امن، و این پرتکرارترین نصیحت بد در وردپرس است. بسیاری از تنظیمات به‌صورت رشته‌های سریالایز‌شده PHP ذخیره می‌شوند که طول بایت خودشان را ثبت می‌کنند. یک جایگزینی ساده SQL متن را تغییر می‌دهد اما طول را نه، پس PHP بی‌سروصدا در unserialize کردن ردیف شکست می‌خورد و مقدار به‌سادگی ناپدید می‌شود — و تنظیمات ابزارک، تغییرات قالب و پیکربندی افزونه را هم با خودش می‌برد.

به‌جای آن از چه چیزی باید استفاده کنم؟

WP-CLI: اول 'wp search-replace old new --all-tables --dry-run'، بعد بدون --dry-run. این سریالایز شدن را می‌فهمد و پیشوندهای طول را درست بازنویسی می‌کند. اگر دسترسی CLI ندارید، افزونه Better Search Replace همین کار را از پنل مدیریت انجام می‌دهد.

آیا باید ستون GUID را به‌روزرسانی کنم؟

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