الانتقال إلى المحتوى
الأدوات

استعلامات SQL للبحث والاستبدال

غيّر عنوان URL لموقعك دون إفساد البيانات المتسلسلة

يعمل في متصفحك. لا يُرفع أي شيء.

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 بسيط على قاعدة بيانات ووردبريس يُفسد كل خيار متسلسل (serialized) يمسّه، لأن طول السلسلة المخزَّن لم يعد يطابق. تُنشئ هذه الأداة الاستعلامات الآمنة، وتوضّح بالضبط أيّها غير آمن.

FAQ

أسئلة

هل يمكنني تغيير رابط موقع WordPress عبر بحث واستبدال بـ SQL؟

ليس بأمان، وهذه أكثر نصيحة سيئة يُتشارَك بها في WordPress. تُخزَّن كثير من الخيارات كسلاسل PHP مُسلسَلة تسجّل طول بايتاتها بنفسها. استبدال SQL بسيط يغيّر النص لا الطول، فيفشل PHP بصمت في فكّ تسلسل الصف وتختفي القيمة ببساطة — آخذةً معها إعدادات الودجات وتعديلات القالب وإعدادات الإضافات.

ماذا ينبغي أن أستخدم بدلًا من ذلك؟

WP-CLI: ‏'wp search-replace old new --all-tables --dry-run' أولًا، ثم بدون ‎--dry-run. فهو يفهم التسلسل ويعيد كتابة بادئات الطول بشكل صحيح. إذا لم يكن لديك وصول إلى CLI، فإضافة Better Search Replace تفعل الشيء نفسه من لوحة التحكم.

هل ينبغي أن أحدّث عمود GUID؟

لا. الـ GUID معرّف فريد دائم للمقالة، لا رابط، وقارئات الخلاصات تعتمد عليه. إعادة كتابته تجعل كل مشترك يرى كل مقالة قديمة وكأنها جديدة تمامًا. توثيق WordPress يقول صراحةً ألّا تغيّره.