
به اشتراک بگذارید
آموزش وردپرس | بلاگ وبداده
جستجو و جایگزینی متن در وردپرس (Find and Replace)
- افزونه، سادهترین راه: افزونه Better Search Replace با پشتیبانی از دادههای سریالایز، امنترین گزینه برای اکثر کاربران است.
- WP-CLI برای حرفهایها: اگر دسترسی SSH دارید، دستور wp search-replace سریع و مطمئن است.
- SQL خام، پرریسک: جایگزینی مستقیم در phpMyAdmin میتواند دادههای سریالایز را خراب کند و باید با احتیاط انجام شود.
- جایگزینی نمایشی: با فیلتر the_content میتوان بدون تغییر دیتابیس، فقط خروجی نمایش را عوض کرد.
- قانون طلایی: پیش از هر تغییری، حتماً از سایت و دیتابیس بکاپ کامل بگیرید.
در یک جمله
جستجو و جایگزینی متن در وردپرس چیست و چه زمانی لازم میشود؟
پرکاربردترین سناریوها
📌 اصلاح لینکهای داخلی شکسته یا آدرس تصاویر پس از جابجایی.
📌 جایگزینی یک نام برند، شماره تماس یا واژهی پرتکرار در صدها نوشته.
📌 پاکسازی کدهای مخرب یا اسکریپتهای تزریقشده پس از هک.

چهار روش جایگزینی متن؛ کدام مناسب شماست؟
هشدار مهم درباره روش SQL خام
| روش | سطح دشواری | امنیت دادهی سریالایز | بهترین کاربرد |
|---|---|---|---|
| افزونه Better Search Replace | آسان | امن (پشتیبانی کامل) | اکثر کاربران؛ تغییر دامنه و اصلاح لینک |
| خط فرمان WP-CLI | متوسط | امن (unserialize خودکار) | کاربران حرفهای با دسترسی SSH |
| SQL خام در phpMyAdmin | سخت | پرریسک (احتمال خرابی) | متن ساده در جدولهای غیرسریالایز |
| فیلتر the_content | متوسط | بدون تغییر دیتابیس | جایگزینی موقت و فقط نمایشی |
آموزش گامبهگام جایگزینی متن با هر روش
روش اول: افزونه Better Search Replace (پیشنهادی)
- نصب و فعالسازی: از مسیر «افزونهها < افزودن»، عبارت Better Search Replace را جستجو، نصب و فعال کنید.
- ورود به ابزار: به مسیر «ابزارها (Tools) < Better Search Replace» بروید.
- تعریف عبارتها: در کادر «Search for» عبارت قدیمی و در «Replace with» عبارت جدید را وارد کنید.
- انتخاب جدولها: جدولهایی که میخواهید جستوجو در آنها انجام شود را انتخاب کنید (برای تغییر دامنه معمولاً همهی جدولها).
- اجرای آزمایشی: تیک گزینهی «Run as dry run» را بزنید و دکمه را کلیک کنید تا بدون اعمال واقعی، تعداد تغییرها را ببینید.
- اعمال نهایی: اگر نتیجه درست بود، تیک Dry Run را بردارید و یکبار دیگر اجرا کنید تا تغییرها ذخیره شوند.
همیشه اول بکاپ، بعد جایگزینی

روش دوم: خط فرمان WP-CLI برای کاربران حرفهای
# گام ۱: ابتدا با dry-run تغییرها را بدون ذخیره در دیتابیس ببینید
wp search-replace 'example.com' 'newsite.com' --dry-run
# گام ۲: پس از اطمینان، همان دستور را بدون dry-run و روی همه جدولها اجرا کنید
wp search-replace 'example.com' 'newsite.com' --all-tables
# نکته: WP-CLI دادههای سریالایز را بهدرستی باز و دوبارهسازی میکندBashروش سوم: جایگزینی نمایشی با فیلتر functions.php
// جایگزینی «نمایشی» متن در محتوای نوشتهها بدون تغییر دیتابیس
// این کد را در functions.php قالب فرزند یا یک افزونهی اسنیپت قرار دهید
add_filter( 'the_content', 'webdade_replace_text' );
function webdade_replace_text( $content ) {
$search = 'عبارت قدیمی';
$replace = 'عبارت جدید';
// دادهی اصلی در دیتابیس دستنخورده میماند؛ فقط خروجی نمایش تغییر میکند
return str_replace( $search, $replace, $content );
}PHPمحدودیت روش نمایشی
معایب هر روش و نقش هاست در جایگزینی امن
- افزونهها: سادهاند اما هر افزونهی فعال کمی به بار سایت اضافه میکند؛ بهتر است پس از انجام کار، افزونهی جایگزینی را غیرفعال کنید.
- WP-CLI: نیاز به دسترسی SSH و آشنایی با خط فرمان دارد و برای کاربران کاملاً مبتدی مناسب نیست.
- SQL خام: بیشترین ریسک را دارد؛ یک اشتباه کوچک روی دادهی سریالایز میتواند تنظیمات سایت را از بین ببرد.
- فیلتر نمایشی: موقت است و دیتابیس را اصلاح نمیکند؛ برای مهاجرت واقعی کاربردی ندارد.
نقلقول از مستندات WP Engine دربارهٔ دادههای سریالایز
هاست وردپرس وبداده؛ بستر امن برای تغییرهای انبوه
✅ زیرساخت نسل جدید HPE (Gen11 و Gen10) برای اجرای سریع و پایدار عملیات دیتابیس.
✅ دیتاسنترهای ایران، هلند و آلمان برای انتخاب نزدیکترین لوکیشن به مخاطبان شما.
✅ پشتیبانی فنی ۲۴ ساعته برای کمک در نصب WP-CLI، بازگردانی بکاپ و رفع خطاهای احتمالی.
پرسشهای پرتکرار دربارهٔ جستوجو و جایگزینی متن
بهترین افزونه برای جایگزینی متن در وردپرس کدام است؟
برای اکثر کاربران، افزونهی رایگان Better Search Replace بهترین گزینه است. این افزونه با بیش از یک میلیون نصب فعال، از دادههای سریالایز پشتیبانی میکند، قابلیت اجرای آزمایشی (Dry Run) دارد و اجازه میدهد جدولهای موردنظر را انتخاب کنید. برای بیشتر کارها مثل تغییر دامنه و اصلاح لینکها کاملاً کافی است.
آیا جایگزینی متن به دادههای سایت آسیب میزند؟
اگر از ابزار درست استفاده کنید، خیر. افزونهها و WP-CLI دادههای سریالایز را بهدرستی مدیریت میکنند و ریسک بسیار پایینی دارند. خطر اصلی زمانی است که با دستور SQL خام در phpMyAdmin روی جدولهای حاوی دادهی سریالایز جایگزینی کنید؛ در این حالت ممکن است تنظیمات ویجتها و افزونهها خراب شوند. به همین دلیل همیشه اول بکاپ بگیرید.
Dry Run یا اجرای آزمایشی دقیقاً چه کاری میکند؟
حالت Dry Run کل عملیات جستوجو و جایگزینی را شبیهسازی میکند و گزارش میدهد که چند مورد و در کدام جدولها تغییر خواهد کرد، اما هیچ تغییری را واقعاً ذخیره نمیکند. این یک شبکهی ایمنی عالی است: ابتدا نتیجه را میبینید و اگر درست بود، تغییر را نهایی میکنید.
برای تغییر دامنه سایت از کدام روش استفاده کنم؟
برای تغییر دامنه یا انتقال از http به https، بهترین گزینهها افزونه Better Search Replace یا دستور wp search-replace هستند، چون آدرسها اغلب داخل دادههای سریالایز ذخیره شدهاند و این دو ابزار آنها را بهدرستی بهروزرسانی میکنند. پس از تغییر، حتماً پیوندهای یکتا را یکبار ذخیره و کش سایت را پاک کنید.
آیا وردپرس ابزار داخلی برای جایگزینی انبوه دارد؟
ویرایشگر بلوکی وردپرس امکان جستوجو و جایگزینی درون یک نوشته را دارد، اما ابزار داخلی برای جایگزینی «انبوه» در کل سایت و دیتابیس ندارد. برای آن باید از افزونه، WP-CLI یا روشهای دیتابیسی استفاده کنید.
بعد از جایگزینی، تغییرها را نمیبینم؛ مشکل چیست؟
معمولاً علت، کش است. پس از جایگزینی، کش افزونهی کش و کش مرورگر را پاک کنید. اگر از شبکهی توزیع محتوا (CDN) استفاده میکنید، کش آن را هم خالی کنید. در صورتی که باز هم تغییری دیده نشد، مطمئن شوید جدول درست را برای جستوجو انتخاب کردهاید.
آیا میتوانم بدون افزونه و بدون SSH این کار را انجام دهم؟
بله، از طریق phpMyAdmin در کنترلپنل هاست میتوانید با دستور SQL جایگزینی کنید، اما این روش پرریسکترین گزینه است و برای دادهی سریالایز توصیه نمیشود. اگر ناچار به استفاده از آن هستید، حتماً ابتدا از دیتابیس خروجی (Export) بگیرید و ترجیحاً فقط روی جدول محتوای نوشتهها (wp_posts) کار کنید.
اجرای عملیات جایگزینی چقدر طول میکشد؟
برای سایتهای کوچک و متوسط معمولاً چند ثانیه است. در سایتهای بزرگ با دیتابیس حجیم، عملیات ممکن است طولانیتر شود و به منابع سرور بیشتری نیاز داشته باشد. اجرای این کار روی هاستی با منابع کافی، احتمال بروز خطای وقفه یا کندی را کاهش میدهد.
اگر نتیجهی جایگزینی اشتباه شد، چطور برگردانم؟
اگر پیش از شروع بکاپ گرفته باشید، سادهترین راه بازگردانی همان بکاپ است. برای همین است که تأکید میکنیم بکاپگیری اختیاری نیست. اگر بکاپ ندارید و دادهی سریالایز خراب شده، باید تنظیمات آسیبدیده مثل ویجتها و گزینههای افزونه را دستی بازسازی کنید که کار وقتگیری است.
جمعبندی و قدم بعدی شما
جمعبندی سریع
✅ به SSH دسترسی دارید؟ دستور wp search-replace با –dry-run.
✅ فقط تغییر نمایشی میخواهید؟ فیلتر the_content در functions.php.
✅ همیشه و بدون استثنا، پیش از شروع بکاپ کامل بگیرید.



