تخفیف ویژه

جایگزین کردن عبارات و کلمات در متن مطالب ارسالی در وردپرس

دسته بندی: وردپرس
زمان مطالعه: 4 دقیقه
۱۶ آبان ۱۳۹۱

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

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

فهرست محتوای این مقاله

فیلترها در وردپرس

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

افزودن فیلتر جایگزینی کلمات به وردپرس

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

add_filter('the_content', 'replace_words');

با افزودن این خط کد با فایل functions.php قالب وردپرستون دارید یک فیلتر اضافه می‌کنید که می‌گید قبل از نمایش محتوای مطالب سایت (the_content) تابع replace_words روی اون محتوا اعمال بشه .

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

این تابع رو به راحتی می‌تونید با چند خط کد php به شکل زیر تعریف کنید .

function replace_words($content){
$olds = array('دریافت فایل', 'تومن', 'vpn');
$news = array('دانلود فایل', 'تومان', 'v.p.n');
$content = str_replace($olds , $news ,$content);
return $content;
}

در این تابع گفتیم که اعضای آرایه olds رو با عضو متناظرشون در ارایه news جایگزین کن ! در واقع گفتیم که تومن ، دریافت فایل و vpn رو به ترتیب با تومان ، دانلود فایل و v.p.n جایگزین کن . بر اساس نیازتون می‌تونید کلمات خودتون رو به این دو آرایه اضافه کنید .

نکته :

دقت کنید که کلمات در هر آرایه با کاما از هم جدا شدند . ضمنا کلمات در آرایه olds با عضو متناظرشون در آرایه news جایگزین میشن . پس اگر می‌خواید کلمه x رو با y جایگزین کنید هر دو باید مثلا عضو چهارم آرایه باشند !

و در آخر ...

کاری که شما باید انجام بدید اینه که چنین کدی رو به اول فایل functions.php در قالب وردپرس خودتون اضافه کنید :

<?php
function replace_words($content){
$olds = array('دریافت فایل', 'تومن', 'vpn');
$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) هم استفاده شده تا جایگزینی کلمات در خلاصه مطالب هم اعمال بشه!

امیدوارم که از این ترفند لذت برده باشید !

اشتراک گذاری مطالب سایت یادتون نره !

موفق باشید .

چه امتیازی به این مقاله می دید؟
نویسنده لقمان آوند
بیش از 15 سال هست که برنامه نویسی می کنم و از بین همه زبون هایی که کار کردم جاوا، اسمبلی و php رو دوست دارم. دانشجوی دکترای نرم افزارم و توی دانشگاه روی پردازش بیگ دیتا و پردازش موازی کار کردم و عاشق چالش از هر نوعیش هستم! سون لرن مثل بچه منه که 12 سال براش وقت گذاشتم، اینجا همه تلاش می کنیم از شروع یادگیری تا ورود به بازر کار حوزه برنامه نویسی و IT همراهتون باشیم.

نظرات کاربران

jokerarkhamasylum

سریع اونجا جوابمو بدین.

joker

آقا میشه بهم بگید که چجوری میتونم تو وبلاگم دکمه ادامه مطلب را مثل مال شما بذارم .مثلا اینجوری:https://7learn.com/imgs/more.gif
تو رو خدا بیایید تو وبم جوابم بدید

لقمان آوند

توی انجمن بپرس جواب خواهی گرفت .

mss

ویژگی جالبیه ولی زیاد منطقی نیست هرچند به درد های دیگه هم میخوره
به نظرم به جای این کار می تونیم با خروجی گرفتن از جدول wp_post و باز کردن فایل sql با یه ویرایشگر متن جایگزین کردن عبارات مود نظر و import کردن دوباره روی دیتابیس منطقی تره…
چون با تعویض قالب یا فایل function قرار نیست تغییرات دوباره برگردند به حال اول

لقمان آوند

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

مرتضی

سلام
فقط اینکه وب کاربردی و واقعا به درد بخوری دارید
و اگه امکانش هست یه آموزش در رابطه با کار با فایل منجر هاست لینوکس(سی پنل) قرار بدید
اینکه چه فایلهایی رو کدوم قست و چه جوری آپ کنیم
من تو نت گشتم ولی اموزش ها کلی بودن
وارد جزئییات نشده بودن
ممنون میشم اگه کمکم کنید

لقمان آوند

سلام
یه پوشه به نام www یا puplic_http هست که محتویات درون اون صفحه اول سایتتون رو نشون میده .باید اونجا آپلود کنید .

hamid zar

بله میخوام خارج بشم با سپاس فراوان خدمت استاد مهندس لقمان اوند.

babak.namaki

دمت گرم لقمان جان

http://ljava.mihanblog.com
از طریق یکی از نظرات رفتم تو این آدرس…فک کنم مال خودتون هست.

هنوزم که هنوزه بازدید داره …
“””
امروز : سه شنبه 16 آبان 1391

بازدید های امروز : 31

بازدید های دیروز : 93
“””
واقعا دمت گرم. 😳

لقمان آوند

سلام
آره بابک جان .
تقریبا 6-7 سال پیش بود
یادش بخیر .

babak.namaki

یه سر به انجمن بزن
در مورد خذف ستون ابر برچسب ها.
منتظر جوالتون هستم.

ارسال دیدگاه
خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :