خوب چرا راه دور همین جا میذاشتی
در در
شاید براتون پیش اومده باشه که بعد از ارسال تعداد زیادی مطلب در وبسایت وردپرسی تون ، بخواید یک کلمه یا عبارت رو در همه ی مطالب ارسالی با کلمه و یا عبارت جدیدی جایگزین کنید ! مثلا اگر سایت دانلود نرم افزار، فیلم و ... دارید و در متن نوشته ها از عبارت دریافت فایل استفاده کردید ، شاید تصمیم بگیرید و بخواید که همه رو به دانلود فایل تغیر بدید . یا مثلا تو خود سایت سون لرن می خوایم در همه ی مطالب ، اگر واژه 7 لرن استفاده شده اون رو با سون لرن جایگزین کنیم !
روش قدیمی و یه کم خنده دارش اینه که برگردید و همه ی پست ها رو یکی یکی بررسی کنید و عبارت جدید رو به جای قبلی بزارید . ولی ما در اینجا با چند خط کد و با یه ترفند ساده به شما یاد می دیم که چطور به سادگی این کار رو بدون استفاده از هیچ پلاگینی در وردپرس انجام بدید .
فیلترها در وردپرس
در سیستم مدیریت محتوای وردپرس و اکثر سیستم های دیگه مفهومی به نام فیلتر وجود داره . با استفاده از این فیلترها شما می تونید قبل از نمایش محتوا و یا قسمت خاصی از محتوای سایت تغیراتی رو روی اونها اعمال کنید . در اینجا تغیراتی که ما می خوایم انجام بدیم اینه که یه سری کلمات یا عبارات رو با یه سری کلمات و عبارات جدید جایگزین کنیم . پس این فیلتر رو با هم اضافه میکنیم .
افزودن فیلتر جایگزینی کلمات به وردپرس
برای افزودن فیلتر در وردپرس تابعی به نام add_filter وجود داره که در حالت معمولش دو تا پارامتر ورودی رو می گیره . پارامتر اول میگه که این فیلتر روی چه بخشی از سایت اعمال بشه و پارمتر دوم هم نام تابعی هست که تغیرات لازم رو روی اون بخش از سایت اعمال می کنه . مثلا کد زیر رو ببینید :
add_filter('the_content', 'replace_words');
با افزودن این خط کد با فایل functions.php قالب وردپرستون دارید یک فیلتر اضافه می کنید که می گید قبل از نمایش محتوای مطالب سایت (the_content) تابع replace_words روی اون محتوا اعمال بشه .
خوب پس کار اصلی ، نوشتن این تابع هست که باید روی محتوا اعمال بشه ! تابعی که قراره عبارت جدیدی رو به جای قدیمی تر ها جایگزین کنه .
این تابع رو به راحتی می تونید با چند خط کد php به شکل زیر تعریف کنید .
function replace_words($content){
$olds = array('دریافت فایل', 'تومن', '***');
$news = array('دانلود فایل', 'تومان', 'v.p.n');
$content = str_replace($olds , $news ,$content);
return $content;
}
در این تابع گفتیم که اعضای آرایه olds رو با عضو متناظرشون در ارایه news جایگزین کن ! در واقع گفتیم که تومن ، دریافت فایل و *** رو به ترتیب با تومان ، دانلود فایل و v.p.n جایگزین کن . بر اساس نیازتون می تونید کلمات خودتون رو به این دو آرایه اضافه کنید .
نکته : دقت کنید که کلمات در هر آرایه با کاما از هم جدا شدند . ضمنا کلمات در آرایه olds با عضو متناظرشون در آرایه news جایگزین میشن . پس اگر می خواید کلمه x رو با y جایگزین کنید هر دو باید مثلا عضو چهارم آرایه باشند !
و در آخر ...
کاری که شما باید انجام بدید اینه که چنین کدی رو به اول فایل functions.php در قالب وردپرس خودتون اضافه کنید :
<?php
function replace_words($content){
$olds = array('دریافت فایل', 'تومن', '***');
$news = array('دانلود فایل', 'تومان', 'v.p.n');
$content = str_replace($olds , $news ,$content);
return $content;
}
add_filter('the_content', 'replace_words');
add_filter('the_excerpt', 'replace_words');
?>
:: در این کد از یه فیلتر دیگه (the_excerpt) هم استفاده شده تا جایگزینی کلمات در خلاصه مطالب هم اعمال بشه!
منبع
7learn.com