شاید براتون پیش اومده باشه که بعد از ارسال تعداد زیادی مطلب در وبسایت وردپرسی تون ، بخواید یک کلمه یا عبارت رو در همه ی مطالب ارسالی با کلمه و یا عبارت جدیدی جایگزین کنید ! مثلا اگر سایت دانلود نرم افزار، فیلم و ... دارید و در متن نوشتهها از عبارت دریافت فایل استفاده کردید ، شاید تصمیم بگیرید و بخواید که همه رو به دانلود فایل تغیر بدید . یا مثلا تو خود سایت سون لرن میخوایم در همه ی مطالب ، اگر واژه 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) هم استفاده شده تا جایگزینی کلمات در خلاصه مطالب هم اعمال بشه!
امیدوارم که از این ترفند لذت برده باشید !
اشتراک گذاری مطالب سایت یادتون نره !
موفق باشید .
سریع اونجا جوابمو بدین.
آقا میشه بهم بگید که چجوری میتونم تو وبلاگم دکمه ادامه مطلب را مثل مال شما بذارم .مثلا اینجوری:https://7learn.com/imgs/more.gif
تو رو خدا بیایید تو وبم جوابم بدید
توی انجمن بپرس جواب خواهی گرفت .
ویژگی جالبیه ولی زیاد منطقی نیست هرچند به درد های دیگه هم میخوره
به نظرم به جای این کار می تونیم با خروجی گرفتن از جدول wp_post و باز کردن فایل sql با یه ویرایشگر متن جایگزین کردن عبارات مود نظر و import کردن دوباره روی دیتابیس منطقی تره…
چون با تعویض قالب یا فایل function قرار نیست تغییرات دوباره برگردند به حال اول
خوب این روشی هم که گفتید درسته ولی شاید آدم نخواد برای همیشه محتواشو عوض کنه !
شاید بخواید کلمات خاصی رو لینک کنید ! و یه مدت بعد نخواید !
به نظر من روش منطقی تر اینه !
محتوای اصلی رو داشته باشی در هنگام نمایش تغیرش بدی .
ضمن اینکه با این روشی که شما گفتی ممکنه اشتباهاتی رو توی تغیر داده ها انجام بدید که قابل بازگشت نباشه به این راحتی . در صورتی که با روشی که اینجا گفتیم خیلی راحت قابل بازگشت و یا تغیر هست .
به هر حال بستگی به موقعیتش داره . یه جایی شاید واقعا لازم باشه که خود محتوا واقعا عوض بشه .
سلام
فقط اینکه وب کاربردی و واقعا به درد بخوری دارید
و اگه امکانش هست یه آموزش در رابطه با کار با فایل منجر هاست لینوکس(سی پنل) قرار بدید
اینکه چه فایلهایی رو کدوم قست و چه جوری آپ کنیم
من تو نت گشتم ولی اموزش ها کلی بودن
وارد جزئییات نشده بودن
ممنون میشم اگه کمکم کنید
سلام
یه پوشه به نام www یا puplic_http هست که محتویات درون اون صفحه اول سایتتون رو نشون میده .باید اونجا آپلود کنید .
بله میخوام خارج بشم با سپاس فراوان خدمت استاد مهندس لقمان اوند.
دمت گرم لقمان جان
http://ljava.mihanblog.com
از طریق یکی از نظرات رفتم تو این آدرس…فک کنم مال خودتون هست.
هنوزم که هنوزه بازدید داره …
“””
امروز : سه شنبه 16 آبان 1391
بازدید های امروز : 31
بازدید های دیروز : 93
“””
واقعا دمت گرم. 😳
سلام
آره بابک جان .
تقریبا 6-7 سال پیش بود
یادش بخیر .
یه سر به انجمن بزن
در مورد خذف ستون ابر برچسب ها.
منتظر جوالتون هستم.