آموزش وردپرس | بلاگ وب‌داده

جستجو و جایگزینی متن در وردپرس (Find and Replace)

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

در یک جمله

اگر تازه‌کار هستید، افزونه Better Search Replace را نصب کنید، حالت آزمایشی (Dry Run) را بزنید تا نتیجه را ببینید و بعد تغییر را اعمال کنید؛ اگر با خط فرمان راحت‌اید، wp search-replace سریع‌ترین و مطمئن‌ترین راه است. در هر دو حالت، بکاپ‌گرفتن پیش از شروع غیرقابل‌چشم‌پوشی است.
احتمالاً این مقاله را باز کرده‌اید چون می‌خواهید یک عبارت یا آدرس را در کل سایت وردپرسی خود عوض کنید و دنبال راهی مطمئن می‌گردید. در ادامه بدون اصطلاحات پیچیده، هر روش را با مزایا و معایب واقعی‌اش توضیح می‌دهیم تا خودتان بتوانید بهترین گزینه را انتخاب و کار را با خیال راحت انجام دهید.

جستجو و جایگزینی متن در وردپرس چیست و چه زمانی لازم می‌شود؟

جست‌وجو و جایگزینی (Search and Replace) یک عملیات ساده اما قدرتمند است: شما یک رشته‌ی متنی (مثلاً یک واژه، آدرس یا لینک) را در پایگاه‌داده یا محتوای سایت مشخص می‌کنید و وردپرس یا ابزار کمکی، تمام نمونه‌های آن را پیدا کرده و با رشته‌ی دلخواه شما جایگزین می‌کند. این کار در چند ثانیه اتفاقی را رقم می‌زند که انجام دستی آن ممکن است ساعت‌ها طول بکشد.
یک تشبیه ساده کمک می‌کند: تصور کنید در یک کتاب هزار صفحه‌ای، نام یک شخصیت را اشتباه نوشته‌اید. به‌جای ورق‌زدن تک‌تک صفحه‌ها، از قابلیت Find and Replace ویرایشگر متن استفاده می‌کنید تا همه‌ی موارد یک‌جا اصلاح شوند. در سایت وردپرسی هم دقیقاً همین منطق حاکم است، با این تفاوت که «کتاب» شما همان پایگاه‌داده‌ی سایت است.

پرکاربردترین سناریوها

📌 تغییر دامنه یا انتقال سایت از http به https (اصلاح انبوه آدرس‌ها).
📌 اصلاح لینک‌های داخلی شکسته یا آدرس تصاویر پس از جابجایی.
📌 جایگزینی یک نام برند، شماره تماس یا واژه‌ی پرتکرار در صدها نوشته.
📌 پاک‌سازی کدهای مخرب یا اسکریپت‌های تزریق‌شده پس از هک.
اگر تازه سایت خود را راه‌اندازی کرده‌اید و پیش از هر تغییری می‌خواهید با محیط وردپرس بیشتر آشنا شوید، راهنمای نصب وردپرس روی هاست سی‌پنل نقطه‌ی خوبی برای شروع است. حالا ببینیم برای این جایگزینی چه روش‌هایی در اختیار داریم.
محیط جستجو و جایگزینی متن در وردپرس با افزونه و ابزارهای هاست

چهار روش جایگزینی متن؛ کدام مناسب شماست؟

پیش از پریدن به آموزش، بهتر است یک نگاه کلی به گزینه‌های پیش‌رو داشته باشید تا آگاهانه انتخاب کنید. در وردپرس عملاً چهار مسیر برای جایگزینی انبوه متن وجود دارد و تفاوت اصلی آن‌ها در «سطح دشواری» و «میزان ریسک برای داده‌ها» است.
۱. افزونه اختصاصی (Better Search Replace): ساده‌ترین و امن‌ترین راه؛ بدون نیاز به دانش فنی، از داخل پیشخوان انجام می‌شود. ۲. خط فرمان WP-CLI: سریع و حرفه‌ای، مناسب کسانی که به SSH سرور دسترسی دارند. ۳. SQL خام در phpMyAdmin: بدون افزونه انجام می‌شود اما اگر ندانید چه می‌کنید، می‌تواند داده‌ها را خراب کند. ۴. فیلتر نمایشی در functions.php: دیتابیس را دست‌نخورده نگه می‌دارد و فقط خروجی نمایش را عوض می‌کند.

هشدار مهم درباره روش SQL خام

اجرای مستقیم دستور REPLACE() در phpMyAdmin روی جدول‌هایی مثل wp_options، wp_postmeta و wp_usermeta می‌تواند «داده‌های سریالایز» (Serialized) را بی‌سروصدا خراب کند؛ چون طول رشته عوض می‌شود اما پیشوند طولِ ذخیره‌شده (مثلاً s:23) به‌روز نمی‌شود و کل مقدار نامعتبر می‌گردد. تنظیمات ویجت‌ها، قالب و افزونه‌ها ممکن است از بین بروند. این روش را فقط با بکاپ کامل و ترجیحاً روی متن ساده به کار ببرید.
برای اینکه تصمیم‌گیری آسان شود، در جدول زیر هر چهار روش را از نظر دشواری، امنیت داده و بهترین کاربرد کنار هم گذاشته‌ایم:
مقایسهٔ چهار روش جایگزینی متن در وردپرس:
روشسطح دشواریامنیت داده‌ی سریالایزبهترین کاربرد
افزونه Better Search Replaceآسانامن (پشتیبانی کامل)اکثر کاربران؛ تغییر دامنه و اصلاح لینک
خط فرمان WP-CLIمتوسطامن (unserialize خودکار)کاربران حرفه‌ای با دسترسی SSH
SQL خام در phpMyAdminسختپرریسک (احتمال خرابی)متن ساده در جدول‌های غیرسریالایز
فیلتر the_contentمتوسطبدون تغییر دیتابیسجایگزینی موقت و فقط نمایشی
جمع‌بندی جدول: اگر مطمئن نیستید، از افزونه یا WP-CLI استفاده کنید؛ این دو داده‌های سریالایز را به‌درستی مدیریت می‌کنند و ریسک را به کمترین حد می‌رسانند.

آموزش گام‌به‌گام جایگزینی متن با هر روش

حالا که تصویر کلی روشن شد، سه روش پرکاربرد را عملی پیش می‌رویم. توصیه‌ی جدی ما این است که پیش از شروع هر روش، یک نسخه‌ی پشتیبان کامل از سایت و دیتابیس تهیه کنید تا اگر نتیجه مطابق انتظار نبود، به‌راحتی به عقب برگردید.

روش اول: افزونه Better Search Replace (پیشنهادی)

این افزونه‌ی رایگان با بیش از یک میلیون نصب فعال و توسعه‌یافته توسط WP Engine، محبوب‌ترین ابزار برای این کار است. مزیت کلیدی‌اش این است که داده‌های سریالایز را باز می‌کند، جایگزینی را روی مقدار داخلی اعمال و سپس با شمارش بایتِ درست دوباره سریالایز می‌کند؛ به همین دلیل خطر خرابی داده در آن بسیار کم است. مراحل کار ساده است:
  • نصب و فعال‌سازی: از مسیر «افزونه‌ها < افزودن»، عبارت Better Search Replace را جستجو، نصب و فعال کنید.
  • ورود به ابزار: به مسیر «ابزارها (Tools) < Better Search Replace» بروید.
  • تعریف عبارت‌ها: در کادر «Search for» عبارت قدیمی و در «Replace with» عبارت جدید را وارد کنید.
  • انتخاب جدول‌ها: جدول‌هایی که می‌خواهید جست‌وجو در آن‌ها انجام شود را انتخاب کنید (برای تغییر دامنه معمولاً همه‌ی جدول‌ها).
  • اجرای آزمایشی: تیک گزینه‌ی «Run as dry run» را بزنید و دکمه را کلیک کنید تا بدون اعمال واقعی، تعداد تغییرها را ببینید.
  • اعمال نهایی: اگر نتیجه درست بود، تیک Dry Run را بردارید و یک‌بار دیگر اجرا کنید تا تغییرها ذخیره شوند.

همیشه اول بکاپ، بعد جایگزینی

پیش از اجرای نهایی، از دیتابیس یک نسخه‌ی پشتیبان بگیرید. در هاست‌های سی‌پنل این کار تنها با چند کلیک ممکن است؛ راهنمای بکاپ رایگان و اسنپ‌شات فوری در هاست سی‌پنل مسیر را نشان می‌دهد. اگر جایگزینی اشتباه بود، بازگردانی از بکاپ سریع‌ترین راه نجات است.
مراحل جایگزینی متن در وردپرس با افزونه Better Search Replace و گزینه Dry Run

روش دوم: خط فرمان WP-CLI برای کاربران حرفه‌ای

اگر به SSH سرور دسترسی دارید و ابزار WP-CLI روی هاست نصب است، این سریع‌ترین راه است. طبق مستندات رسمی وردپرس، دستور wp search-replace هر ستون را unserialize می‌کند، رشته را جایگزین و با طول درست دوباره serialize می‌کند؛ پس برای داده‌ی سریالایز هم امن است. همیشه ابتدا با فلگ ‎–dry-run‎ نتیجه را ببینید و بعد اعمال کنید:
# گام ۱: ابتدا با dry-run تغییرها را بدون ذخیره در دیتابیس ببینید
wp search-replace 'example.com' 'newsite.com' --dry-run

# گام ۲: پس از اطمینان، همان دستور را بدون dry-run و روی همه جدول‌ها اجرا کنید
wp search-replace 'example.com' 'newsite.com' --all-tables

# نکته: WP-CLI داده‌های سریالایز را به‌درستی باز و دوباره‌سازی می‌کند
فلگ ‎–dry-run‎ فقط گزارش می‌دهد که چند مورد تغییر می‌کند، بدون اینکه چیزی در دیتابیس ذخیره شود. پس از اطمینان، همان دستور را بدون این فلگ اجرا کنید. فلگ ‎–all-tables‎ هم جست‌وجو را به همه‌ی جدول‌ها گسترش می‌دهد.

روش سوم: جایگزینی نمایشی با فیلتر functions.php

گاهی نمی‌خواهید دیتابیس را تغییر دهید و فقط قصد دارید یک عبارت هنگام «نمایش» به کاربر جایگزین شود. در این حالت می‌توانید با فیلتر the_content یک تابع ساده در فایل functions.php قالب فرزند اضافه کنید. داده‌ی اصلی دست‌نخورده می‌ماند و هر زمان کد را بردارید، همه‌چیز به حالت اول برمی‌گردد:
// جایگزینی «نمایشی» متن در محتوای نوشته‌ها بدون تغییر دیتابیس
// این کد را در functions.php قالب فرزند یا یک افزونه‌ی اسنیپت قرار دهید
add_filter( 'the_content', 'webdade_replace_text' );
function webdade_replace_text( $content ) {
    $search  = 'عبارت قدیمی';
    $replace = 'عبارت جدید';
    // داده‌ی اصلی در دیتابیس دست‌نخورده می‌ماند؛ فقط خروجی نمایش تغییر می‌کند
    return str_replace( $search, $replace, $content );
}

محدودیت روش نمایشی

این روش دیتابیس را تغییر نمی‌دهد، بنابراین برای تغییر دائمی دامنه یا مهاجرت سایت مناسب نیست. همچنین چون روی هر بار بارگذاری صفحه اجرا می‌شود، استفاده‌ی سنگین از آن می‌تواند اثر کوچکی بر سرعت بگذارد. برای تغییرهای دائمی و انبوه، افزونه یا WP-CLI انتخاب بهتری است.

معایب هر روش و نقش هاست در جایگزینی امن

هیچ روشی بی‌عیب نیست و بهتر است پیش از انتخاب، محدودیت‌ها را هم صادقانه بدانید تا با چشم باز تصمیم بگیرید:
  • افزونه‌ها: ساده‌اند اما هر افزونه‌ی فعال کمی به بار سایت اضافه می‌کند؛ بهتر است پس از انجام کار، افزونه‌ی جایگزینی را غیرفعال کنید.
  • WP-CLI: نیاز به دسترسی SSH و آشنایی با خط فرمان دارد و برای کاربران کاملاً مبتدی مناسب نیست.
  • SQL خام: بیشترین ریسک را دارد؛ یک اشتباه کوچک روی داده‌ی سریالایز می‌تواند تنظیمات سایت را از بین ببرد.
  • فیلتر نمایشی: موقت است و دیتابیس را اصلاح نمی‌کند؛ برای مهاجرت واقعی کاربردی ندارد.
نکته‌ی مشترک همه‌ی روش‌ها این است که موفقیت کار تا حد زیادی به کیفیت هاست و امکان بکاپ‌گیری سریع بستگی دارد. یک نقل‌قول از یک منبع معتبر این نکته را روشن می‌کند:

نقل‌قول از مستندات WP Engine دربارهٔ داده‌های سریالایز

مستندات WP Engine تأکید می‌کند که «داده‌های سریالایز به طولِ دقیقِ رشته وابسته‌اند؛ اگر این طول با محتوا هماهنگ نباشد، وردپرس نمی‌تواند داده را بازخوانی کند و مقدار خراب می‌شود». به همین دلیل ابزارهایی که سریالایز را می‌فهمند (مثل افزونه و WP-CLI) بر جایگزینی دستیِ SQL ترجیح دارند. منبع: wpengine.com — Manage Serialized Data.
درس عملی این نقل‌قول ساده است: ابزار درست را انتخاب کنید و همیشه یک راه بازگشت (بکاپ) داشته باشید.

هاست وردپرس وب‌داده؛ بستر امن برای تغییرهای انبوه

در تجربه‌ی پشتیبانی ما در وب‌داده، بخش بزرگی از مشکلاتی که کاربران هنگام جایگزینی انبوه با آن‌ها روبه‌رو می‌شوند، ریشه در نبود بکاپ به‌روز یا کندی سرور هنگام اجرای عملیات سنگین روی دیتابیس دارد. به همین دلیل روی این موارد تأکید داریم:
✅ هاست وردپرس وب‌داده با امکان بکاپ‌گیری و اسنپ‌شات فوری، تا پیش از هر تغییری یک نسخه‌ی امن داشته باشید.
✅ زیرساخت نسل جدید HPE (Gen11 و Gen10) برای اجرای سریع و پایدار عملیات دیتابیس.
✅ دیتاسنترهای ایران، هلند و آلمان برای انتخاب نزدیک‌ترین لوکیشن به مخاطبان شما.
✅ پشتیبانی فنی ۲۴ ساعته برای کمک در نصب WP-CLI، بازگردانی بکاپ و رفع خطاهای احتمالی.
اگر می‌خواهید تغییرهای انبوه سایت را با خیال راحت و امکان بازگشت سریع انجام دهید، می‌توانید پلن‌های سرور مجازی ایران وب‌داده را ببینید؛ برای مدیریت ساده‌تر فایل‌ها و دیتابیس هم هاست سی پنل وب‌داده گزینه‌ی خوبی است.

پرسش‌های پرتکرار دربارهٔ جست‌وجو و جایگزینی متن

جمع‌بندی و قدم بعدی شما

در این راهنما دیدیم که جستجو و جایگزینی متن در وردپرس چهار مسیر اصلی دارد و انتخاب درست به سطح فنی شما و اهمیت داده‌ها بستگی دارد. برای اکثر کاربران، افزونه Better Search Replace با حالت آزمایشی و پشتیبانی از داده‌های سریالایز، امن‌ترین و ساده‌ترین گزینه است. کاربران حرفه‌ای می‌توانند با wp search-replace سریع‌تر عمل کنند، و اگر فقط به تغییر نمایشی نیاز دارید، فیلتر the_content بدون دست‌زدن به دیتابیس کار را انجام می‌دهد. تنها روشی که باید با احتیاط زیاد سراغش بروید، جایگزینی مستقیم SQL است. در هر حالت، یک اصل ثابت است: پیش از هر تغییری بکاپ بگیرید تا همیشه راه بازگشت داشته باشید.

جمع‌بندی سریع

✅ مبتدی هستید؟ افزونه Better Search Replace + Dry Run.
✅ به SSH دسترسی دارید؟ دستور wp search-replace با ‎–dry-run‎.
✅ فقط تغییر نمایشی می‌خواهید؟ فیلتر the_content در functions.php.
✅ همیشه و بدون استثنا، پیش از شروع بکاپ کامل بگیرید.
در صورتی که سوالی داشتید می‌توانید در بخش نظرات با ما در ارتباط باشید.
وب داده
وب داده

جدید ترین مطالب آموزشی و کاربردی را در اینجا بخوانید !
ما با بهره‌گیری از دانش روز و تجربه متخصصان حوزه فناوری، مجموعه‌ای از آموزش‌های کاربردی و مقالات تخصصی را گردآوری کرده‌ایم که هر یک، پاسخی دقیق به پرسش‌های شماست. ؛ از مفاهیم پایه تا پیچیده‌ترین تکنیک‌های حرفه‌ای. اینجا، دانش با زبانی ساده اما عمیق در اختیار شما قرار می‌گیرد.

مقاله‌ها: 45
پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *