در نرم‌افزار مدیریت محتوای WordPress قابلیت جستجو کردن یک کلمه یا عبارت و جایگزین کردن آن با کلید ترکیبی Ctrl + F انجام می‌شود اما چگونه می‌توان در تمام پست‌های یک وب‌سایت وردپرسی عبارتی را Search و سپس با عبارت دیگری جایگزین یا Replace کرد؟

برای انجام این کار می‌توان از افزونه‌ها استفاده کرد اما بدون افزونه هم می‌توان با یک کوئری ساده MySQL این کار را انجام داد. جایگزین کردن یک عکس، یک جمله یا کلمه، یک یا چند تگ مثل div و p و ... به همراه کلاس‌ها و استایل‌های هر یک، از طریق دستورات ساده که دیتابیس وردپرس را دستکاری می‌کنند، امکان‌پذیر است.

در این مقاله به روش جایگزین کردن عبارت‌ها در تمام پست‌های یک وب‌سایت وردپرسی می‌پردازیم. با ما همراه شوید.

در چه مواردی از Find و Replace در دیتابیس WordPress استفاده می‌کنیم؟

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

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

مثال بعدی مربوط به حالتی است که از شورت‌کدهای مربوط به پلاگین‌های وردپرس استفاده کرده‌اید اما تصمیم گرفته‌اید که برای سبک‌تر کردن وب‌سایت خود، Shortcode استفاده شده را حذف کنید و به جای آن از یک div یا span و یا ... با کلاس خاصی استفاده کنید و سپس استایل لازم را در فایل CSS سایت خود اضافه کنید.

در تمام این موارد اگر یک یا چند پست ساده در سایت وجود داشته باشد، روش تغییر دادن دستی کارساز است اما اگر تعداد پست‌ها زیاد باشد، چگونه باید تمام موارد را شناسایی و ویرایش کرد؟

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

شروع تغییر دادن دیتابیس وردپرس و ویرایش عبارت دلخواه

قبل از هر چیز دقت کنید که نمی‌توان تغییری که در دیتابیس ایجاد شده را Undo کرد! بنابراین باید از آن بکاپ تهیه کرد که این کار در cPanel یا Direct Admin بسیار ساده است و حجم فایل بکاپ حتی در مورد وبلاگ‌های بزرگ حداکثر چند مگابایت یا چند ده مگابایت است. بنابراین یک بکاپ ساده تهیه کنید و مراحل را ادامه دهید.

برای بکاپ گرفتن می‌توان از phpMyAdmin نیز استفاده کرد که روش مطمئن‌تری است و با توجه به تغییراتی که در ادامه به کمک همین ابزار در دیتابیس می‌دهیم، استفاده از آن ساده‌تر و سریع‌تر است.

چگونه از دیتابیس به کمک phpMyAdmin بکاپ بگیریم و بکاپی را بازگردانی کنیم؟

پس از ورود به حساب کاربری خود در کنترل پنل هاست به دنبال گزینه‌ی phpMyAdmin بگردید و روی آن کلیک کنید. این گزینه معمولاً در گروه ابزارهای کار با database قرار دارد اما ممکن است در برخی کنترل پنل‌ها نیز موقعیت آن متفاوت باشد. تصویر زیر به cPanel مربوط می‌شود:

چگونه کلمه یا عبارتی را در تمام پست‌های وردپرس تغییر دهیم؟

و این تصویر نیز به دایرکت ادمین مربوط است:

چگونه کلمه یا عبارتی را در تمام پست‌های وردپرس تغییر دهیم؟

پس از اجرا کردن phpMyAdmin در سمت چپ صفحه روی دیتابیس سایت وردپرسی موردنظر خود کلیک کنید چرا که قرار نیست از تمام جداول بکاپ تهیه کنیم.

اکنون در بالای صفحه روی تب Export کلیک کنید. حالت پیش‌فرض یا Quick فایلی با پسوند sql در اختیار شما قرار می‌دهد که نسبتاً حجیم است اما به راحتی فشرده می‌شود. اگر حجم مهم نیست همین حالت را انتخاب کرده و روی Go کلیک کنید تا بکاپ دانلود شود.

چگونه کلمه یا عبارتی را در تمام پست‌های وردپرس تغییر دهیم؟

در صورت نیاز به فایل فشرده با فرمت zip معمولی و یا gzip، روی حالت Custom کلیک کنید و سپس در بخش Output از منوی کرکره‌ای Compression حالت zipped یا gzipped را انتخاب نمایید و در نهایت روی Go کلیک کنید تا فایل فشرده و کم‌حجم، دانلود شود.

چگونه کلمه یا عبارتی را در تمام پست‌های وردپرس تغییر دهیم؟

برای بازگردانی بکاپ، ابتدا از سمت چپ روی دیتابیس سایت وردپرسی خود کلیک کنید و سپس در بالای صفحه تب Import را انتخاب کنید. در این تب روی Choose File کلیک کنید و فایل زیپ‌شده، جی‌زیپ‌شده یا sql معمولی بدون فشرده‌سازی را آدرس‌دهی کنید و سپس روی Go در پایین صفحه کلیک کنید تا دیتابیس با تنظیمات پیش‌فرض، ایمپورت یا بازگردانی شود.

چگونه کلمه یا عبارتی را در تمام پست‌های وردپرس تغییر دهیم؟

جست‌وجو و جایگزین کردن عبارت دلخواه با پلاگین Better Search Replace

 

اولین روش که نیازی به دستورات ظاهراً پیچیده ندارد، مبتنی بر یک پلاگین رایگان و قدرتمند به اسم Better Search Replace است که می‌توان آن را از مخزن وردپرس دانلود و نصب کرد:

و مراحل استفاده از این افزونه:

برای دسترسی به تنظیمات این افزونه، در پنل مدیریت سایت وردپرسی روی ابزارها یا Tools کلیک کنید و سپس گزینه‌ی Better Search Replace را انتخاب کنید.

ابتدا روی تب Search/Replace کلیک کنید.

در فیلد اول یا Search for عبارتی که می‌خواهید تغییر دهید را وارد کنید.

در فیلد Replace with عبارت جدید را وارد کنید.

جدول مربوط به پست‌های وردپرس که در حالت پیش‌فرض wp_posts نام دارد را از فیلد بعدی انتخاب کنید.

در صورت مهم بودن بزرگ یا کوچک بودن حروف، تیک گزینه‌ی Case-insensitive? را حذف کنید.

برای انجام تست و سپس جایگزین کردن عبارت، تیک Run as dry run? را اضافه کنید تا اشتباهی رخ ندهد.

چگونه کلمه یا عبارتی را در تمام پست‌های وردپرس تغییر دهیم؟

اگر دیتابیس سایت شما بسیار حجیم باشد و هاست ارزانی در اختیار داشته باشید، ممکن است زمان اجرای سرچ و ریپلیس بسیار زیاد شود و کار به درستی انجام نشود. در این صورت از تب دوم یعنی Settings استفاده کنید و Max Page Size را کاهش دهید تا مشکل صفحه‌ی سفید پس از اجرای دستور جایگزینی، برطرف شود.

چگونه کلمه یا عبارتی را در تمام پست‌های وردپرس تغییر دهیم؟

آموزش جایگزین کردن عبارت در تمام پست‌های وردپرس به کمک phpMyAdmin و MySQL Query

برای استفاده از phpMyAdmin ابتدا وارد پنل هاست سایت خود شوید. در کنترل پنل هاست خود به دنبال گزینه‌ی phpMyAdmin بگردید و روی آن کلیک کنید. این گزینه معمولاً در گروه ابزارهای کار با database قرار دارد اما ممکن است در برخی کنترل پنل‌ها نیز موقعیت آن متفاوت باشد. تصویر زیر به cPanel مربوط می‌شود:

چگونه کلمه یا عبارتی را در تمام پست‌های وردپرس تغییر دهیم؟

و این تصویر نیز به دایرکت ادمین مربوط است:

چگونه کلمه یا عبارتی را در تمام پست‌های وردپرس تغییر دهیم؟

 

پس از اجرا کردن phpMyAdmin در سمت چپ صفحه روی دیتابیس سایت وردپرسی موردنظر خود کلیک کنید. قدم بعدی کلیک کردن روی تب SQL است.

چگونه کلمه یا عبارتی را در تمام پست‌های وردپرس تغییر دهیم؟

اکنون می‌توانید دستور زیر را برای تغییر دادن هر جدول دلخواهی استفاده کنید:

  • در دستور فوق به جای TABLE_NAME می‌بایست نام جدول را قرار داد که در مورد جدول پست‌های وردپرس، نام پیش‌فرض wp_posts است.
  • به جای FIELD_NAME می‌بایست نام فیلد موردنظر خود را قرار داد که در مورد متن پست‌ها، فیلد post_content استفاده می‌شود.
  • به جای SEARCH و REPLACE نیز عبارت اصلی و عبارت جایگزین را قرار دهید.

به عبارت دیگر اگر هدف شما این باشد که به جای کلمه‌ی "it-planet'.ir" از "www.it-planet.ir" استفاده کنید، کافی است دستور زیر را وارد کنید:

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

چگونه کلمه یا عبارتی را در تمام پست‌های وردپرس تغییر دهیم؟

برای تغییر دادن کلاس‌ها و استایل‌ها نیز می‌توان از همین دستور ساده استفاده کرد با این تفاوت که به جای عبارت‌های ساده، از تگ‌های HTML مثل <div> و span و ... استفاده می‌شود. به عنوان مثال اگر بخواهیم تمام پاراگراف‌های متن، کلاسی به اسم simple داشته باشند و سپس در CSS‌ برای این کلاس استایلی تعریف کنیم، کافی است از دستور زیر استفاده شود:

برای تغییر دادن کلمه‌ی اشتباه در تیتر پست‌ها، کافی است به جای فیلد post_content از post_title استفاده کنید و به همین ترتیب برای تغییر کلمات اشتباه در چکیده یا Excerpt از post_excerpt استفاده نمایید.

توجه کنید که جدول wp_posts وردپرس شامل فیلدهایی به جز فیلد متن پست است، مثل post_excerpt و post_title. به جدول زیر توجه کنید:

Field Type Null Key Default Extra
ID bigint(20) unsigned   PRI & IND Pt4   auto_increment
post_author bigint(20) unsigned   IND 0  
post_date datetime   IND Pt3 0000-00-00 00:00:00  
post_date_gmt datetime     0000-00-00 00:00:00  
post_content longtext        
post_title text        
post_excerpt text        
post_status varchar(20)   IND PT2 publish  
comment_status varchar(20)     open  
ping_status varchar(20)     open  
post_password varchar(20)        
post_name varchar(200)   IND    
to_ping text        
pinged text        
post_modified datetime     0000-00-00 00:00:00  
post_modified_gmt datetime     0000-00-00 00:00:00  
post_content_filtered longtext        
post_parent bigint(20) unsigned   IND 0  
guid varchar(255)        
menu_order int(11)     0  
post_type varchar(20)   IND Pt1 post  
post_mime_type varchar(100)        
comment_count bigint(20)     0