• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

پیدا کردن و جایگزینی یک کلمه یا متن در دیتابیس وردپرس با یک کلیک ( اختصاصی ادمین وب )

AGHIL1265

Registered User
تاریخ عضویت
2 ژوئن 2011
نوشته‌ها
440
لایک‌ها
80
سن
33
سلام !
توی این تاپیک قصد دارم نحوه پیدا کردن یک کلمه در دیتابیس وردپرس شما و جایگزین کردن اون رو با یه کلمه جدید ، آموزش بدم .

نمونه کاربرد این آموزش :
بر فرض مثال توی تمام پست های شما کلمه شیراز وجود داره. و شما میخواهید همه اون رو به اصفهان تغییر بدید .

پس با من همراه باشین لطفا


ادامه آموزش رو اینجا مشاهده کنید .
 

mortezafox

Registered User
تاریخ عضویت
19 اکتبر 2007
نوشته‌ها
976
لایک‌ها
721
خوب چرا راه دور همین جا میذاشتی
در در
شاید براتون پیش اومده باشه که بعد از ارسال تعداد زیادی مطلب در وبسایت وردپرسی تون ، بخواید یک کلمه یا عبارت رو در همه ی مطالب ارسالی با کلمه و یا عبارت جدیدی جایگزین کنید ! مثلا اگر سایت دانلود نرم افزار، فیلم و ... دارید و در متن نوشته ها از عبارت دریافت فایل استفاده کردید ، شاید تصمیم بگیرید و بخواید که همه رو به دانلود فایل تغیر بدید . یا مثلا تو خود سایت سون لرن می خوایم در همه ی مطالب ، اگر واژه 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
 

AGHIL1265

Registered User
تاریخ عضویت
2 ژوئن 2011
نوشته‌ها
440
لایک‌ها
80
سن
33
اولا اگه میخواستم همشو بزارم دستم چلاق نبود و میزاشتم همشو
دوما آموزشی که من گذاشتم اختصاصیه
سوما شما چرا توی این تاپیک گذاشتی پستت رو ؟!
چهارما شما اگه میخوای کپی کنی ، درست کپی کن که اینقد شلخته نباشه پستت :-s
پنجما این روشی که اون سایت گفته اصلا توصیه نمیشه !!! چرا؟ چون اگه بر فرض مثال طرف بخواد قالبش رو عوض کنه ، حتما و حتما باید دوباره آموزش رو انجام بده !!! ولی طبق آموزشی که من گذاشتم، کلمات توی دیتابیس تغییر داده میشن !!! این خیلی مهمه !
 

aminem25197

Registered User
تاریخ عضویت
18 فوریه 2013
نوشته‌ها
442
لایک‌ها
176
میشه سوال هم پرسید؟ فرض میکنم که میشه :)
فرض کنید که من بخوام یه لیست از کلمات رو تغییر بدم، مثلا هزار کمله! و لینک هم بهشون اضافه کنم و این لیست هر جند وقت یکبار آپدیت کنم. میشه این رو در قالب یک افزونه بهمراه یک دکمه آپدیت آماده کرد که مثلا دو هفته یکبار تغییرات رو اعمال کنیم؟
 

AGHIL1265

Registered User
تاریخ عضویت
2 ژوئن 2011
نوشته‌ها
440
لایک‌ها
80
سن
33
میشه سوال هم پرسید؟ فرض میکنم که میشه :)
فرض کنید که من بخوام یه لیست از کلمات رو تغییر بدم، مثلا هزار کمله! و لینک هم بهشون اضافه کنم و این لیست هر جند وقت یکبار آپدیت کنم. میشه این رو در قالب یک افزونه بهمراه یک دکمه آپدیت آماده کرد که مثلا دو هفته یکبار تغییرات رو اعمال کنیم؟

چرا که نشه؟ توی ادمین وب بپرسید خیلی بهتره :)
تغییر کلمات رو که با همین آموزش میتونید انجام بدید . برای اضافه کردن لینک، توی خط زیر بجای کلمه دوم که WordPress هست ، باید ببینیم استفاده از تگ های html مجازه یا نه ؟!
PHP:
replace(post_content,'Wordpress','WordPress')

من خودم تست نکردم این مورد رو .

افزونه هم فکر نمیکنم توی این موارد که با SQL سر و کار داره بشه افزونه ای نوشت . شاید هم چون من تابحال انجام ندادم، نمیدونم
 
بالا